vmm: Split restore device_manager and devices

Signed-off-by: Henry Wang <Henry.Wang@arm.com>
This commit is contained in:
Henry Wang
2021-06-06 16:13:59 +08:00
committed by Sebastien Boeuf
parent 95ca4fb15e
commit 4da3bdcd6e
2 changed files with 44 additions and 26 deletions
+11
View File
@@ -2277,6 +2277,17 @@ impl Snapshottable for Vm {
#[cfg(target_arch = "aarch64")]
self.restore_vgic_and_enable_interrupt(&snapshot)?;
if let Some(device_manager_snapshot) = snapshot.snapshots.get(DEVICE_MANAGER_SNAPSHOT_ID) {
self.device_manager
.lock()
.unwrap()
.restore_devices(*device_manager_snapshot.clone())?;
} else {
return Err(MigratableError::Restore(anyhow!(
"Missing device manager snapshot"
)));
}
// Now we can start all vCPUs from here.
self.cpu_manager
.lock()