aboutgitcodebugslistschat
diff options
context:
space:
mode:
authorLaurent Vivier <lvivier@redhat.com>2026-09-03 13:16:00 +0200
committerStefano Brivio <sbrivio@redhat.com>2026-09-08 16:15:37 +0200
commitde8b085b3bb18ebfbb2fd2409fece8fe2d8af5e1 (patch)
tree0e131be3263c81695649919aec06ebab78aa6775
parentd2fb3ba1fed44d4d4dcabe8898769d506f414bb7 (diff)
downloadpasst-de8b085b3bb18ebfbb2fd2409fece8fe2d8af5e1.tar
passt-de8b085b3bb18ebfbb2fd2409fece8fe2d8af5e1.tar.gz
passt-de8b085b3bb18ebfbb2fd2409fece8fe2d8af5e1.tar.bz2
passt-de8b085b3bb18ebfbb2fd2409fece8fe2d8af5e1.tar.lz
passt-de8b085b3bb18ebfbb2fd2409fece8fe2d8af5e1.tar.xz
passt-de8b085b3bb18ebfbb2fd2409fece8fe2d8af5e1.tar.zst
passt-de8b085b3bb18ebfbb2fd2409fece8fe2d8af5e1.zip
vhost_user: Reset vq enable flag in vu_cleanup()
vu_cleanup() resets most virtqueue state (started, notification, file descriptors) but does not reset the enable flag. After a QEMU disconnect and reconnect, the stale enable flag causes vu_set_vring_enable_exec() to hit its early return check (vq->enable == enable). Reset vq->enable to false in vu_cleanup() alongside the other virtqueue state. Signed-off-by: Laurent Vivier <lvivier@redhat.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
-rw-r--r--vhost_user.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/vhost_user.c b/vhost_user.c
index a1259c2..272295f 100644
--- a/vhost_user.c
+++ b/vhost_user.c
@@ -1081,6 +1081,7 @@ void vu_cleanup(struct vu_dev *vdev)
struct vu_virtq *vq = &vdev->vq[i];
vq->started = false;
+ vq->enable = false;
vq->notification = true;
if (vq->call_fd != -1) {