summary refs log tree commit diff
path: root/devices/src/pci/vfio_pci.rs
diff options
context:
space:
mode:
authorXiong Zhang <xiong.y.zhang@intel.corp-partner.google.com>2019-04-23 17:15:05 +0800
committerCommit Bot <commit-bot@chromium.org>2019-11-11 09:46:44 +0000
commit62fd776c5c9b9a2fd03d13fc7ec2bce7e5b42684 (patch)
tree85c6903ee3151bb6d7f2e4aae84120812c21a792 /devices/src/pci/vfio_pci.rs
parentd9a54c222ea0e83fc4f237f792b374b2841074c5 (diff)
downloadcrosvm-62fd776c5c9b9a2fd03d13fc7ec2bce7e5b42684.tar
crosvm-62fd776c5c9b9a2fd03d13fc7ec2bce7e5b42684.tar.gz
crosvm-62fd776c5c9b9a2fd03d13fc7ec2bce7e5b42684.tar.bz2
crosvm-62fd776c5c9b9a2fd03d13fc7ec2bce7e5b42684.tar.lz
crosvm-62fd776c5c9b9a2fd03d13fc7ec2bce7e5b42684.tar.xz
crosvm-62fd776c5c9b9a2fd03d13fc7ec2bce7e5b42684.tar.zst
crosvm-62fd776c5c9b9a2fd03d13fc7ec2bce7e5b42684.zip
Vfio: Suitably allocate bar for vfio device
Use 64bit flag in vfio device's bar to get correct mmio allocator.

BUG=chromium:992270
TEST=none

Change-Id: I8f3dab48eb6dc0b92071803aa3526cadda8034c7
Signed-off-by: Xiong Zhang <xiong.y.zhang@intel.corp-partner.google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/1581143
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Zach Reizner <zachr@chromium.org>
Diffstat (limited to 'devices/src/pci/vfio_pci.rs')
-rw-r--r--devices/src/pci/vfio_pci.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/devices/src/pci/vfio_pci.rs b/devices/src/pci/vfio_pci.rs
index 2243990..fd1b3ca 100644
--- a/devices/src/pci/vfio_pci.rs
+++ b/devices/src/pci/vfio_pci.rs
@@ -501,8 +501,12 @@ impl PciDevice for VfioPciDevice {
                 size <<= 32;
                 size |= u64::from(low);
                 size = !size + 1;
+                let mmio_type = match is_64bit {
+                    false => MmioType::Low,
+                    true => MmioType::High,
+                };
                 let bar_addr = resources
-                    .mmio_allocator(MmioType::Low)
+                    .mmio_allocator(mmio_type)
                     .allocate_with_align(
                         size,
                         Alloc::PciBar {