mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2025-02-01 17:35:19 +00:00
pci: vfio: Skip IOBAR allocation on AArch64
AArch64 does not use IOBAR, and current code of panics the whole VMM if we need to allocate the IOBAR. This commit checks if IOBAR is enabled before the arch conditional code of IOBAR allocation and if the IOBAR is not enabled, we can just skip the IOBAR allocation and do nothing. Fixes: https://github.com/cloud-hypervisor/cloud-hypervisor/issues/3479 Signed-off-by: Henry Wang <Henry.Wang@arm.com>
This commit is contained in:
parent
4ecc778efe
commit
cf68f03ab6
@ -411,20 +411,20 @@ impl VfioCommon {
|
||||
let mut lower = vfio_wrapper.read_config_dword(bar_offset);
|
||||
|
||||
if io_bar {
|
||||
// Mask flag bits (lowest 2 for I/O bars)
|
||||
lower &= !0b11;
|
||||
|
||||
// BAR is not enabled
|
||||
if lower == 0 {
|
||||
bar_id += 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
#[cfg(target_arch = "x86_64")]
|
||||
{
|
||||
// IO BAR
|
||||
region_type = PciBarRegionType::IoRegion;
|
||||
|
||||
// Mask flag bits (lowest 2 for I/O bars)
|
||||
lower &= !0b11;
|
||||
|
||||
// BAR is not enabled
|
||||
if lower == 0 {
|
||||
bar_id += 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
// Invert bits and add 1 to calculate size
|
||||
region_size = (!lower + 1) as u64;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user