From: "Michael S. Tsirkin" <m...@redhat.com>

When vhost device stops, its implementation synchronizes kernel state
back to virtio.c so we can continue emulating the device
in userspace.

This patch ensures that virtio.c's signalled_used_valid flag is reset so
that userspace does not suppress guest notifications due to stale
signalled_used values.

Cc: qemu-sta...@nongnu.org
Signed-off-by: Michael S. Tsirkin <m...@redhat.com>
(cherry picked from commit 3561ba14188b3c1e54246ed6db97896bbc082d2f)

Signed-off-by: Michael Roth <mdr...@linux.vnet.ibm.com>
---
 hw/virtio/vhost.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
index fbabf99..0dabf26 100644
--- a/hw/virtio/vhost.c
+++ b/hw/virtio/vhost.c
@@ -761,6 +761,7 @@ static void vhost_virtqueue_stop(struct vhost_dev *dev,
         fflush(stderr);
     }
     virtio_queue_set_last_avail_idx(vdev, idx, state.num);
+    virtio_queue_invalidate_signalled_used(vdev, idx);
     assert (r >= 0);
     cpu_physical_memory_unmap(vq->ring, virtio_queue_get_ring_size(vdev, idx),
                               0, virtio_queue_get_ring_size(vdev, idx));
-- 
1.7.9.5


Reply via email to