]> git.proxmox.com Git - qemu.git/commitdiff
vhost: clear signalled_used_valid on vhost stop
authorMichael S. Tsirkin <mst@redhat.com>
Mon, 12 Aug 2013 09:21:36 +0000 (12:21 +0300)
committerMichael S. Tsirkin <mst@redhat.com>
Mon, 12 Aug 2013 09:25:17 +0000 (12:25 +0300)
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-stable@nongnu.org
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
hw/virtio/vhost.c

index 8f6ab130ee325d565b1597450832d93e3cd56d96..9e336ad81e3e6fc5fe754d5cc557ccda5f9c8f7e 100644 (file)
@@ -762,6 +762,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));