]> git.ipfire.org Git - thirdparty/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 Roth <mdroth@linux.vnet.ibm.com>
Tue, 13 Aug 2013 15:04:40 +0000 (10:04 -0500)
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>
(cherry picked from commit 3561ba14188b3c1e54246ed6db97896bbc082d2f)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
hw/virtio/vhost.c

index fbabf99f5e2663c0711db28062bb3ddf24c2d566..0dabf263df8d7d655ceea06812b821af296030e6 100644 (file)
@@ -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));