diff options
author | Michael S. Tsirkin <mst@redhat.com> | 2013-08-12 12:21:36 +0300 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2013-08-12 12:25:17 +0300 |
commit | 3561ba14188b3c1e54246ed6db97896bbc082d2f (patch) | |
tree | b919de94ea85f7f8f1b3a18a0043cb4d48bb26e4 | |
parent | 6793dfd1b6a99a79b9f2e3c4d6625ccd6513f240 (diff) | |
download | hqemu-3561ba14188b3c1e54246ed6db97896bbc082d2f.zip hqemu-3561ba14188b3c1e54246ed6db97896bbc082d2f.tar.gz |
vhost: clear signalled_used_valid on vhost stop
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>
-rw-r--r-- | hw/virtio/vhost.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c index 8f6ab13..9e336ad 100644 --- a/hw/virtio/vhost.c +++ b/hw/virtio/vhost.c @@ -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)); |