summary refs log tree commit diff
path: root/devices/src/virtio/virtio_pci_device.rs
diff options
context:
space:
mode:
authorGurchetan Singh <gurchetansingh@chromium.org>2019-02-20 16:30:48 -0800
committerchrome-bot <chrome-bot@chromium.org>2019-03-01 01:08:27 -0800
commit036ba3390bfd31a3eeae07186cb9e4933fa5ddc3 (patch)
tree64aab291c5b555338297badfff30d7ebbaf6d263 /devices/src/virtio/virtio_pci_device.rs
parent948a3ab6b5c67bd6fa46e6bdd9b49de59ccadf36 (diff)
downloadcrosvm-036ba3390bfd31a3eeae07186cb9e4933fa5ddc3.tar
crosvm-036ba3390bfd31a3eeae07186cb9e4933fa5ddc3.tar.gz
crosvm-036ba3390bfd31a3eeae07186cb9e4933fa5ddc3.tar.bz2
crosvm-036ba3390bfd31a3eeae07186cb9e4933fa5ddc3.tar.lz
crosvm-036ba3390bfd31a3eeae07186cb9e4933fa5ddc3.tar.xz
crosvm-036ba3390bfd31a3eeae07186cb9e4933fa5ddc3.tar.zst
crosvm-036ba3390bfd31a3eeae07186cb9e4933fa5ddc3.zip
devices: use PCI bar configuration when adding regions
This removes add_memory_region and add_io_region, and replaces
it with the add_pci_bar function.

BUG=chromium:924405
TEST=boot VM

Change-Id: Ifc637d174d3f8b1255cf13725a1a224b4cdf0a30
Reviewed-on: https://chromium-review.googlesource.com/1480741
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Diffstat (limited to 'devices/src/virtio/virtio_pci_device.rs')
-rw-r--r--devices/src/virtio/virtio_pci_device.rs10
1 files changed, 7 insertions, 3 deletions
diff --git a/devices/src/virtio/virtio_pci_device.rs b/devices/src/virtio/virtio_pci_device.rs
index f9cb948..bdd10c2 100644
--- a/devices/src/virtio/virtio_pci_device.rs
+++ b/devices/src/virtio/virtio_pci_device.rs
@@ -11,8 +11,8 @@ use super::*;
 use data_model::{DataInit, Le32};
 use kvm::Datamatch;
 use pci::{
-    PciCapability, PciCapabilityID, PciClassCode, PciConfiguration, PciDevice, PciDeviceError,
-    PciHeaderType, PciInterruptPin, PciSubclass,
+    PciBarConfiguration, PciCapability, PciCapabilityID, PciClassCode, PciConfiguration, PciDevice,
+    PciDeviceError, PciHeaderType, PciInterruptPin, PciSubclass,
 };
 use resources::SystemAllocator;
 use sys_util::{EventFd, GuestMemory, Result};
@@ -312,9 +312,13 @@ impl PciDevice for VirtioPciDevice {
         let settings_config_addr = resources
             .allocate_mmio_addresses(CAPABILITY_BAR_SIZE)
             .ok_or(PciDeviceError::IoAllocationFailed(CAPABILITY_BAR_SIZE))?;
+        let config = PciBarConfiguration::default()
+            .set_register_index(0)
+            .set_address(settings_config_addr)
+            .set_size(CAPABILITY_BAR_SIZE);
         let settings_bar = self
             .config_regs
-            .add_memory_region(settings_config_addr, CAPABILITY_BAR_SIZE)
+            .add_pci_bar(&config)
             .ok_or(PciDeviceError::IoRegistrationFailed(settings_config_addr))?
             as u8;
         ranges.push((settings_config_addr, CAPABILITY_BAR_SIZE));