From 34331d3e729b2e1d047fb29c93736b84db302441 Mon Sep 17 00:00:00 2001 From: Sebastien Boeuf Date: Thu, 10 Sep 2020 17:42:55 +0200 Subject: [PATCH] vmm: memory_manager: Fix virtio-mem resize It's important to return the region covered by virtio-mem the first time it is inserted as the device manager must update all devices with this information. Signed-off-by: Sebastien Boeuf --- vmm/src/memory_manager.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/vmm/src/memory_manager.rs b/vmm/src/memory_manager.rs index d5521bb39..8ee3cd6b4 100644 --- a/vmm/src/memory_manager.rs +++ b/vmm/src/memory_manager.rs @@ -1120,7 +1120,7 @@ impl MemoryManager { Ok(()) } - pub fn virtiomem_resize(&mut self, size: u64) -> Result<(), Error> { + pub fn virtiomem_resize(&mut self, size: u64) -> Result>, Error> { let virtiomem_region = if let Some(memory_zone) = self.memory_zones.get_mut(DEFAULT_MEMORY_ZONE) { if let Some(resize) = &memory_zone.virtiomem_resize { @@ -1137,11 +1137,11 @@ impl MemoryManager { }; // Add the region if that's the first time we resize. - if let Some(region) = virtiomem_region { - self.add_region(region) - } else { - Ok(()) + if let Some(region) = virtiomem_region.clone() { + self.add_region(region)?; } + + Ok(virtiomem_region) } pub fn balloon_resize(&mut self, expected_ram: u64) -> Result { @@ -1178,7 +1178,7 @@ impl MemoryManager { match self.hotplug_method { HotplugMethod::VirtioMem => { if desired_ram >= self.boot_ram { - self.virtiomem_resize(desired_ram - self.boot_ram)?; + region = self.virtiomem_resize(desired_ram - self.boot_ram)?; self.current_ram = desired_ram; } }