Skip to content

Commit 92e936d

Browse files
ManciukicShadowCurse
authored andcommitted
refactor(dev-mngr): store vm as Arc in MMIODevManagerConstructorArgs
Store the vm type as an Arc so it's going to be possible to pass it to the virtio-mem device. Signed-off-by: Riccardo Mancini <[email protected]>
1 parent 031fb88 commit 92e936d

File tree

3 files changed

+11
-15
lines changed

3 files changed

+11
-15
lines changed

src/vmm/src/device_manager/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -501,7 +501,7 @@ impl<'a> Persist<'a> for DeviceManager {
501501

502502
// Restore PCI devices
503503
let pci_ctor_args = PciDevicesConstructorArgs {
504-
vm: constructor_args.vm.clone(),
504+
vm: constructor_args.vm,
505505
mem: constructor_args.mem,
506506
vm_resources: constructor_args.vm_resources,
507507
instance_id: constructor_args.instance_id,

src/vmm/src/device_manager/pci_mngr.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ pub struct PciDevicesState {
243243
}
244244

245245
pub struct PciDevicesConstructorArgs<'a> {
246-
pub vm: Arc<Vm>,
246+
pub vm: &'a Arc<Vm>,
247247
pub mem: &'a GuestMemoryMmap,
248248
pub vm_resources: &'a mut VmResources,
249249
pub instance_id: &'a str,
@@ -405,7 +405,7 @@ impl<'a> Persist<'a> for PciDevices {
405405
return Ok(pci_devices);
406406
}
407407

408-
pci_devices.attach_pci_segment(&constructor_args.vm)?;
408+
pci_devices.attach_pci_segment(constructor_args.vm)?;
409409

410410
if let Some(balloon_state) = &state.balloon_device {
411411
let device = Arc::new(Mutex::new(
@@ -426,7 +426,7 @@ impl<'a> Persist<'a> for PciDevices {
426426

427427
pci_devices
428428
.restore_pci_device(
429-
&constructor_args.vm,
429+
constructor_args.vm,
430430
device,
431431
&balloon_state.device_id,
432432
&balloon_state.transport_state,
@@ -451,7 +451,7 @@ impl<'a> Persist<'a> for PciDevices {
451451

452452
pci_devices
453453
.restore_pci_device(
454-
&constructor_args.vm,
454+
constructor_args.vm,
455455
device,
456456
&block_state.device_id,
457457
&block_state.transport_state,
@@ -501,7 +501,7 @@ impl<'a> Persist<'a> for PciDevices {
501501

502502
pci_devices
503503
.restore_pci_device(
504-
&constructor_args.vm,
504+
constructor_args.vm,
505505
device,
506506
&net_state.device_id,
507507
&net_state.transport_state,
@@ -534,7 +534,7 @@ impl<'a> Persist<'a> for PciDevices {
534534

535535
pci_devices
536536
.restore_pci_device(
537-
&constructor_args.vm,
537+
constructor_args.vm,
538538
device,
539539
&vsock_state.device_id,
540540
&vsock_state.transport_state,
@@ -557,7 +557,7 @@ impl<'a> Persist<'a> for PciDevices {
557557

558558
pci_devices
559559
.restore_pci_device(
560-
&constructor_args.vm,
560+
constructor_args.vm,
561561
device,
562562
&entropy_state.device_id,
563563
&entropy_state.transport_state,
@@ -664,7 +664,7 @@ mod tests {
664664
.data;
665665
let vm_resources = &mut VmResources::default();
666666
let restore_args = PciDevicesConstructorArgs {
667-
vm: vmm.vm.clone(),
667+
vm: &vmm.vm,
668668
mem: vmm.vm.guest_memory(),
669669
vm_resources,
670670
instance_id: "microvm-id",

src/vmm/src/device_manager/persist.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ pub enum SharedDeviceType {
140140

141141
pub struct MMIODevManagerConstructorArgs<'a> {
142142
pub mem: &'a GuestMemoryMmap,
143-
pub vm: &'a Vm,
143+
pub vm: &'a Arc<Vm>,
144144
pub event_manager: &'a mut EventManager,
145145
pub vm_resources: &'a mut VmResources,
146146
pub instance_id: &'a str,
@@ -364,11 +364,7 @@ impl<'a> Persist<'a> for MMIODeviceManager {
364364
}
365365
if state.type_ == DeviceType::Rtc {
366366
let rtc = Arc::new(Mutex::new(RTCDevice::new()));
367-
dev_manager.register_mmio_rtc(
368-
constructor_args.vm,
369-
rtc,
370-
Some(state.device_info),
371-
)?;
367+
dev_manager.register_mmio_rtc(vm, rtc, Some(state.device_info))?;
372368
}
373369
}
374370
}

0 commit comments

Comments
 (0)