diff --git a/vm-virtio/src/vhost_user/blk.rs b/vm-virtio/src/vhost_user/blk.rs index c7f441368..e5d183ffa 100644 --- a/vm-virtio/src/vhost_user/blk.rs +++ b/vm-virtio/src/vhost_user/blk.rs @@ -321,6 +321,10 @@ impl VirtioDevice for Blk { fn shutdown(&mut self) { let _ = unsafe { libc::close(self.vhost_user_blk.as_raw_fd()) }; } + + fn update_memory(&mut self, mem: &GuestMemoryMmap) -> std::result::Result<(), crate::Error> { + update_mem_table(&mut self.vhost_user_blk, mem).map_err(crate::Error::VhostUserUpdateMemory) + } } virtio_pausable!(Blk); diff --git a/vm-virtio/src/vhost_user/fs.rs b/vm-virtio/src/vhost_user/fs.rs index fe15eca62..e430eefa2 100644 --- a/vm-virtio/src/vhost_user/fs.rs +++ b/vm-virtio/src/vhost_user/fs.rs @@ -1,7 +1,7 @@ // Copyright 2019 Intel Corporation. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 -use super::vu_common_ctrl::{reset_vhost_user, setup_vhost_user}; +use super::vu_common_ctrl::{reset_vhost_user, setup_vhost_user, update_mem_table}; use super::Error as DeviceError; use super::{Error, Result}; use crate::vhost_user::handler::{VhostUserEpollConfig, VhostUserEpollHandler}; @@ -529,6 +529,10 @@ impl VirtioDevice for Fs { None } } + + fn update_memory(&mut self, mem: &GuestMemoryMmap) -> std::result::Result<(), crate::Error> { + update_mem_table(&mut self.vu, mem).map_err(crate::Error::VhostUserUpdateMemory) + } } virtio_pausable!(Fs); diff --git a/vm-virtio/src/vhost_user/net.rs b/vm-virtio/src/vhost_user/net.rs index 358ceff79..293525dcf 100644 --- a/vm-virtio/src/vhost_user/net.rs +++ b/vm-virtio/src/vhost_user/net.rs @@ -358,6 +358,10 @@ impl VirtioDevice for Net { fn shutdown(&mut self) { let _ = unsafe { libc::close(self.vhost_user_net.as_raw_fd()) }; } + + fn update_memory(&mut self, mem: &GuestMemoryMmap) -> std::result::Result<(), crate::Error> { + update_mem_table(&mut self.vhost_user_net, mem).map_err(crate::Error::VhostUserUpdateMemory) + } } virtio_ctrl_q_pausable!(Net);