From 334aa8c9411f4cc08e9411ef9ecc8472c27efd99 Mon Sep 17 00:00:00 2001 From: Sebastien Boeuf Date: Tue, 18 May 2021 17:22:39 +0200 Subject: [PATCH] virtio-devices: vhost_user: Don't set features twice The virtio features are negotiated and set at the time the device is created, hence there's no need to set the features again while going through the vhost-user setup that is performed upon queue activation. Signed-off-by: Sebastien Boeuf --- virtio-devices/src/vhost_user/blk.rs | 1 - virtio-devices/src/vhost_user/fs.rs | 1 - virtio-devices/src/vhost_user/net.rs | 1 - .../src/vhost_user/vu_common_ctrl.rs | 19 +------------------ 4 files changed, 1 insertion(+), 21 deletions(-) diff --git a/virtio-devices/src/vhost_user/blk.rs b/virtio-devices/src/vhost_user/blk.rs index 53e04bf4a..ccf41e6d5 100644 --- a/virtio-devices/src/vhost_user/blk.rs +++ b/virtio-devices/src/vhost_user/blk.rs @@ -222,7 +222,6 @@ impl VirtioDevice for Blk { queues, queue_evts, &interrupt_cb, - self.common.acked_features, ) .map_err(ActivateError::VhostUserBlkSetup)?; diff --git a/virtio-devices/src/vhost_user/fs.rs b/virtio-devices/src/vhost_user/fs.rs index d568e103d..f82573fc5 100644 --- a/virtio-devices/src/vhost_user/fs.rs +++ b/virtio-devices/src/vhost_user/fs.rs @@ -445,7 +445,6 @@ impl VirtioDevice for Fs { queues, queue_evts, &interrupt_cb, - self.common.acked_features, ) .map_err(ActivateError::VhostUserFsSetup)?; diff --git a/virtio-devices/src/vhost_user/net.rs b/virtio-devices/src/vhost_user/net.rs index 7bc8b38cd..8955f91c3 100644 --- a/virtio-devices/src/vhost_user/net.rs +++ b/virtio-devices/src/vhost_user/net.rs @@ -223,7 +223,6 @@ impl VirtioDevice for Net { queues, queue_evts, &interrupt_cb, - self.common.acked_features, ) .map_err(ActivateError::VhostUserNetSetup)?; diff --git a/virtio-devices/src/vhost_user/vu_common_ctrl.rs b/virtio-devices/src/vhost_user/vu_common_ctrl.rs index 23d8e1703..1b6375e1a 100644 --- a/virtio-devices/src/vhost_user/vu_common_ctrl.rs +++ b/virtio-devices/src/vhost_user/vu_common_ctrl.rs @@ -68,7 +68,7 @@ pub fn add_memory_region(vu: &mut Master, region: &Arc) -> Resu .map_err(Error::VhostUserAddMemReg) } -pub fn setup_vhost_user_vring( +pub fn setup_vhost_user( vu: &mut Master, mem: &GuestMemoryMmap, queues: Vec, @@ -114,8 +114,6 @@ pub fn setup_vhost_user_vring( { vu.set_vring_call(queue_index, &eventfd) .map_err(Error::VhostUserSetVringCall)?; - } else { - return Err(Error::MissingIrqFd); } vu.set_vring_kick(queue_index, &queue_evts[queue_index]) @@ -128,21 +126,6 @@ pub fn setup_vhost_user_vring( Ok(()) } -pub fn setup_vhost_user( - vu: &mut Master, - mem: &GuestMemoryMmap, - queues: Vec, - queue_evts: Vec, - virtio_interrupt: &Arc, - acked_features: u64, -) -> Result<()> { - // Set features based on the acked features from the guest driver. - vu.set_features(acked_features) - .map_err(Error::VhostUserSetFeatures)?; - - setup_vhost_user_vring(vu, mem, queues, queue_evts, virtio_interrupt) -} - pub fn reset_vhost_user(vu: &mut Master, num_queues: usize) -> Result<()> { for queue_index in 0..num_queues { // Disable the vrings.