From 5902dfa403052d67bda6162ccbac12b7ce42b405 Mon Sep 17 00:00:00 2001 From: Sebastien Boeuf Date: Thu, 27 Feb 2020 18:24:47 +0100 Subject: [PATCH] vmm: Store VFIO KVM device from DeviceManager Helps with future refactoring of VFIO device creation. Signed-off-by: Sebastien Boeuf --- vmm/src/device_manager.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/vmm/src/device_manager.rs b/vmm/src/device_manager.rs index 190bb1a50..e9cba9191 100644 --- a/vmm/src/device_manager.rs +++ b/vmm/src/device_manager.rs @@ -437,6 +437,10 @@ pub struct DeviceManager { // MSI Interrupt Manager #[cfg(feature = "pci_support")] msi_interrupt_manager: Arc>, + + // VFIO KVM device + #[cfg(feature = "pci_support")] + kvm_device_fd: Option>, } impl DeviceManager { @@ -527,6 +531,8 @@ impl DeviceManager { pci_bus: None, #[cfg(feature = "pci_support")] msi_interrupt_manager: Arc::clone(&msi_interrupt_manager), + #[cfg(feature = "pci_support")] + kvm_device_fd: None, }; device_manager @@ -1358,6 +1364,7 @@ impl DeviceManager { // Create the KVM VFIO device let device_fd = DeviceManager::create_kvm_device(&self.address_manager.vm_fd)?; let device_fd = Arc::new(device_fd); + self.kvm_device_fd = Some(Arc::clone(&device_fd)); for device_cfg in device_list_cfg.iter() { // We need to shift the device id since the 3 first bits