From 6793dfd1b6a99a79b9f2e3c4d6625ccd6513f240 Mon Sep 17 00:00:00 2001 From: Stefan Hajnoczi Date: Mon, 12 Aug 2013 11:08:09 +0200 Subject: 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 Signed-off-by: Stefan Hajnoczi Signed-off-by: Michael S. Tsirkin --- hw/virtio/virtio.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'hw/virtio/virtio.c') diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 09f62c6c70..706bdf4c46 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -1059,6 +1059,11 @@ void virtio_queue_set_last_avail_idx(VirtIODevice *vdev, int n, uint16_t idx) vdev->vq[n].last_avail_idx = idx; } +void virtio_queue_invalidate_signalled_used(VirtIODevice *vdev, int n) +{ + vdev->vq[n].signalled_used_valid = false; +} + VirtQueue *virtio_get_queue(VirtIODevice *vdev, int n) { return vdev->vq + n; -- cgit v1.2.1