diff options
author | Michael S. Tsirkin <mst@redhat.com> | 2013-08-12 12:21:36 +0300 |
---|---|---|
committer | Michael Roth <mdroth@linux.vnet.ibm.com> | 2013-08-13 10:04:40 -0500 |
commit | 58ef8c530ca5d265f575ef88e93c0214d5740b0a (patch) | |
tree | ee10702dd60c1b6e18561645692ee01770f1967a | |
parent | 8d676daf6d12fb5357da9ccd54ac7640dd7ea9f2 (diff) | |
download | qemu-58ef8c530ca5d265f575ef88e93c0214d5740b0a.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>
(cherry picked from commit 3561ba14188b3c1e54246ed6db97896bbc082d2f)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.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 fbabf99f5e..0dabf263df 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)); |