The check for VIRTIO_DEV_VDPA_CONFIGURED flag is not neede
since each handler has its own lock_all_qps flag
to indicate whether it needs all queue pairs.

Checking the VIRTIO_DEV_VDPA_CONFIGURED flag caused certain handlers
(for example SET_MEM_TABLE for memory hot plug) to run without holding
the per-vq access_lock and trigger vq_assert_lock failures.

Signed-off-by: Serhii Iliushyk <[email protected]>
---
 lib/vhost/vhost_user.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/lib/vhost/vhost_user.c b/lib/vhost/vhost_user.c
index 4bfb13fb98..9288da9322 100644
--- a/lib/vhost/vhost_user.c
+++ b/lib/vhost/vhost_user.c
@@ -3171,10 +3171,8 @@ vhost_user_msg_handler(int vid, int fd)
         * would cause a dead lock.
         */
        if (msg_handler != NULL && msg_handler->lock_all_qps) {
-               if (!(dev->flags & VIRTIO_DEV_VDPA_CONFIGURED)) {
-                       vhost_user_lock_all_queue_pairs(dev);
-                       unlock_required = 1;
-               }
+               vhost_user_lock_all_queue_pairs(dev);
+               unlock_required = 1;
        }
 
        handled = false;
-- 
2.47.3

Reply via email to