vmm: Fix build errors with "pci" feature on AArch64

Signed-off-by: Michael Zhao <michael.zhao@arm.com>
This commit is contained in:
Michael Zhao
2020-06-03 16:59:35 +08:00
committed by Rob Bradford
parent 9ec4aa4019
commit 17057a0dd9
3 changed files with 33 additions and 20 deletions

View File

@@ -110,16 +110,19 @@ impl PciBus {
pub fn register_mapping(
&self,
dev: Arc<Mutex<dyn BusDevice>>,
io_bus: &devices::Bus,
#[cfg(target_arch = "x86_64")] io_bus: &devices::Bus,
mmio_bus: &devices::Bus,
bars: Vec<(GuestAddress, GuestUsize, PciBarRegionType)>,
) -> Result<()> {
for (address, size, type_) in bars {
match type_ {
PciBarRegionType::IORegion => {
#[cfg(target_arch = "x86_64")]
io_bus
.insert(dev.clone(), address.raw_value(), size)
.map_err(PciRootError::PioInsert)?;
#[cfg(target_arch = "aarch64")]
error!("I/O region is not supported");
}
PciBarRegionType::Memory32BitRegion | PciBarRegionType::Memory64BitRegion => {
mmio_bus

View File

@@ -762,7 +762,7 @@ impl PciDevice for VfioPciDevice {
.ok_or_else(|| PciDeviceError::IoAllocationFailed(region_size))?;
}
#[cfg(target_arch = "aarch64")]
unimplemented!();
unimplemented!()
} else {
if is_64bit_bar {
// 64 bits Memory BAR
@@ -875,7 +875,7 @@ impl PciDevice for VfioPciDevice {
#[cfg(target_arch = "x86_64")]
allocator.free_io_addresses(region.start, region.length);
#[cfg(target_arch = "aarch64")]
unimplemented!();
error!("I/O region is not supported");
}
PciBarRegionType::Memory32BitRegion => {
allocator.free_mmio_hole_addresses(region.start, region.length);