diff --git a/src/vmm/src/device_manager/mod.rs b/src/vmm/src/device_manager/mod.rs index 39485004cc7..d7052422a3a 100644 --- a/src/vmm/src/device_manager/mod.rs +++ b/src/vmm/src/device_manager/mod.rs @@ -501,7 +501,7 @@ impl<'a> Persist<'a> for DeviceManager { // Restore PCI devices let pci_ctor_args = PciDevicesConstructorArgs { - vm: constructor_args.vm.clone(), + vm: constructor_args.vm, mem: constructor_args.mem, vm_resources: constructor_args.vm_resources, instance_id: constructor_args.instance_id, diff --git a/src/vmm/src/device_manager/pci_mngr.rs b/src/vmm/src/device_manager/pci_mngr.rs index 8f68a38d3fe..f1ec39ab1d5 100644 --- a/src/vmm/src/device_manager/pci_mngr.rs +++ b/src/vmm/src/device_manager/pci_mngr.rs @@ -243,7 +243,7 @@ pub struct PciDevicesState { } pub struct PciDevicesConstructorArgs<'a> { - pub vm: Arc, + pub vm: &'a Arc, pub mem: &'a GuestMemoryMmap, pub vm_resources: &'a mut VmResources, pub instance_id: &'a str, @@ -405,7 +405,7 @@ impl<'a> Persist<'a> for PciDevices { return Ok(pci_devices); } - pci_devices.attach_pci_segment(&constructor_args.vm)?; + pci_devices.attach_pci_segment(constructor_args.vm)?; if let Some(balloon_state) = &state.balloon_device { let device = Arc::new(Mutex::new( @@ -426,7 +426,7 @@ impl<'a> Persist<'a> for PciDevices { pci_devices .restore_pci_device( - &constructor_args.vm, + constructor_args.vm, device, &balloon_state.device_id, &balloon_state.transport_state, @@ -451,7 +451,7 @@ impl<'a> Persist<'a> for PciDevices { pci_devices .restore_pci_device( - &constructor_args.vm, + constructor_args.vm, device, &block_state.device_id, &block_state.transport_state, @@ -501,7 +501,7 @@ impl<'a> Persist<'a> for PciDevices { pci_devices .restore_pci_device( - &constructor_args.vm, + constructor_args.vm, device, &net_state.device_id, &net_state.transport_state, @@ -534,7 +534,7 @@ impl<'a> Persist<'a> for PciDevices { pci_devices .restore_pci_device( - &constructor_args.vm, + constructor_args.vm, device, &vsock_state.device_id, &vsock_state.transport_state, @@ -557,7 +557,7 @@ impl<'a> Persist<'a> for PciDevices { pci_devices .restore_pci_device( - &constructor_args.vm, + constructor_args.vm, device, &entropy_state.device_id, &entropy_state.transport_state, @@ -664,7 +664,7 @@ mod tests { .data; let vm_resources = &mut VmResources::default(); let restore_args = PciDevicesConstructorArgs { - vm: vmm.vm.clone(), + vm: &vmm.vm, mem: vmm.vm.guest_memory(), vm_resources, instance_id: "microvm-id", diff --git a/src/vmm/src/device_manager/persist.rs b/src/vmm/src/device_manager/persist.rs index 0e781947206..d6d46fff0f5 100644 --- a/src/vmm/src/device_manager/persist.rs +++ b/src/vmm/src/device_manager/persist.rs @@ -140,7 +140,7 @@ pub enum SharedDeviceType { pub struct MMIODevManagerConstructorArgs<'a> { pub mem: &'a GuestMemoryMmap, - pub vm: &'a Vm, + pub vm: &'a Arc, pub event_manager: &'a mut EventManager, pub vm_resources: &'a mut VmResources, pub instance_id: &'a str, @@ -364,11 +364,7 @@ impl<'a> Persist<'a> for MMIODeviceManager { } if state.type_ == DeviceType::Rtc { let rtc = Arc::new(Mutex::new(RTCDevice::new())); - dev_manager.register_mmio_rtc( - constructor_args.vm, - rtc, - Some(state.device_info), - )?; + dev_manager.register_mmio_rtc(vm, rtc, Some(state.device_info))?; } } }