diff --git a/vmm/src/memory_manager.rs b/vmm/src/memory_manager.rs index 0b52ba1f3..250d484ce 100644 --- a/vmm/src/memory_manager.rs +++ b/vmm/src/memory_manager.rs @@ -451,12 +451,14 @@ impl MemoryManager { Ok(slot) } - pub fn resize(&mut self, desired_ram: u64) -> Result<(), Error> { - if desired_ram >= self.current_ram { + pub fn resize(&mut self, desired_ram: u64) -> Result { + if desired_ram > self.current_ram { self.hotplug_ram_region((desired_ram - self.current_ram) as usize)?; self.current_ram = desired_ram; + Ok(true) + } else { + Ok(false) } - Ok(()) } } diff --git a/vmm/src/vm.rs b/vmm/src/vm.rs index e6e37c40b..37efb8ae7 100755 --- a/vmm/src/vm.rs +++ b/vmm/src/vm.rs @@ -500,14 +500,17 @@ impl Vm { } if let Some(desired_memory) = desired_memory { - self.memory_manager + if self + .memory_manager .lock() .unwrap() .resize(desired_memory) - .map_err(Error::MemoryManager)?; - self.devices - .notify_hotplug(HotPlugNotificationFlags::MEMORY_DEVICES_CHANGED) - .map_err(Error::DeviceManager)?; + .map_err(Error::MemoryManager)? + { + self.devices + .notify_hotplug(HotPlugNotificationFlags::MEMORY_DEVICES_CHANGED) + .map_err(Error::DeviceManager)?; + } self.config.lock().unwrap().memory.size = desired_memory; } Ok(())