From ac9e4abcd0badb410f733c2f1e6c3d3f645a5c45 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Mon, 21 Aug 2023 09:21:35 -0600 Subject: [PATCH] virtio-core: Fix compilation on non-x86_64 --- virtio-core/src/probe.rs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/virtio-core/src/probe.rs b/virtio-core/src/probe.rs index 3e4ca9e1e8..a9cf7f6362 100644 --- a/virtio-core/src/probe.rs +++ b/virtio-core/src/probe.rs @@ -3,9 +3,7 @@ use std::ptr::NonNull; use std::sync::Arc; use pcid_interface::irq_helpers::{allocate_single_interrupt_vector, read_bsp_apic_id}; -use pcid_interface::msi::x86_64 as x86_64_msix; -use pcid_interface::msi::x86_64::DeliveryMode; -use pcid_interface::msi::{MsixCapability, MsixTableEntry}; +use pcid_interface::msi::{self, MsixCapability, MsixTableEntry}; use pcid_interface::*; use syscall::Io; @@ -46,6 +44,7 @@ static_assertions::const_assert_eq!(std::mem::size_of::(), 16); pub const MSIX_PRIMARY_VECTOR: u16 = 0; +#[cfg(target_arch = "x86_64")] fn enable_msix(pcid_handle: &mut PcidServerHandle) -> Result { let pci_config = pcid_handle.fetch_config()?; @@ -104,13 +103,13 @@ fn enable_msix(pcid_handle: &mut PcidServerHandle) -> Result { let rh = false; let dm = false; - let addr = x86_64_msix::message_address(lapic_id, rh, dm); + let addr = msi::x86_64::message_address(lapic_id, rh, dm); let (vector, interrupt_handle) = allocate_single_interrupt_vector(destination_id) .unwrap() .expect("virtio_core: interrupt vector exhaustion"); - let msg_data = x86_64_msix::message_data_edge_triggered(DeliveryMode::Fixed, vector); + let msg_data = msi::x86_64::message_data_edge_triggered(msi::x86_64::DeliveryMode::Fixed, vector); table_entry_pointer.addr_lo.write(addr); table_entry_pointer.addr_hi.write(0); @@ -128,6 +127,11 @@ fn enable_msix(pcid_handle: &mut PcidServerHandle) -> Result { Ok(interrupt_handle) } +#[cfg(not(target_arch = "x86_64"))] +fn enable_msix(pcid_handle: &mut PcidServerHandle) -> Result { + panic!("Msi-X only supported on x86_64"); +} + /// VirtIO Device Probe /// /// ## Device State