summaryrefslogtreecommitdiff
path: root/hw/virtio/dataplane
diff options
context:
space:
mode:
authorStefan Hajnoczi <stefanha@redhat.com>2013-08-12 11:08:09 +0200
committerMichael S. Tsirkin <mst@redhat.com>2013-08-12 12:19:04 +0300
commit6793dfd1b6a99a79b9f2e3c4d6625ccd6513f240 (patch)
tree9bb84f2c48451af01e72111e68279a3112c87262 /hw/virtio/dataplane
parent4965b7f056177ddfb816319e9ff5e766898d0bc5 (diff)
downloadqemu-6793dfd1b6a99a79b9f2e3c4d6625ccd6513f240.tar.gz
virtio: clear signalled_used_valid when switching from dataplane
When the dataplane thread stops, its vring.c implementation synchronizes vring state back to virtio.c so we can continue emulating the virtio device. This patch ensures that virtio.c's signalled_used_valid flag is reset so that we do not suppress guest notifications due to stale signalled_used values. Suggested-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'hw/virtio/dataplane')
-rw-r--r--hw/virtio/dataplane/vring.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/hw/virtio/dataplane/vring.c b/hw/virtio/dataplane/vring.c
index 82cc151b17..351a343806 100644
--- a/hw/virtio/dataplane/vring.c
+++ b/hw/virtio/dataplane/vring.c
@@ -52,6 +52,7 @@ bool vring_setup(Vring *vring, VirtIODevice *vdev, int n)
void vring_teardown(Vring *vring, VirtIODevice *vdev, int n)
{
virtio_queue_set_last_avail_idx(vdev, n, vring->last_avail_idx);
+ virtio_queue_invalidate_signalled_used(vdev, n);
hostmem_finalize(&vring->hostmem);
}