diff options
| author | Laurent Vivier <lvivier@redhat.com> | 2026-09-03 13:16:00 +0200 |
|---|---|---|
| committer | Stefano Brivio <sbrivio@redhat.com> | 2026-09-08 16:15:37 +0200 |
| commit | de8b085b3bb18ebfbb2fd2409fece8fe2d8af5e1 (patch) | |
| tree | 0e131be3263c81695649919aec06ebab78aa6775 | |
| parent | d2fb3ba1fed44d4d4dcabe8898769d506f414bb7 (diff) | |
| download | passt-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.c | 1 |
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) { |
