vhost-net: cleanup host notifiers at last step
commitb0b3db79559e57db340b292621c397e7a6cdbdc5
authorMichael S. Tsirkin <mst@redhat.com>
Thu, 11 Aug 2011 07:21:18 +0000 (11 10:21 +0300)
committerMichael S. Tsirkin <mst@redhat.com>
Fri, 26 Aug 2011 08:25:25 +0000 (26 11:25 +0300)
tree25519d7db0fa1fe99469b2e10d2423dd69ad6de2
parentc9abe111209abca1b910e35c6ca9888aced5f183
vhost-net: cleanup host notifiers at last step

When the vhost notifier is disabled, the userspace handler runs
immediately: virtio_pci_set_host_notifier_internal might
call virtio_queue_notify_vq.
Since the VQ state and the tap backend state aren't
recovered yet, this causes
"Guest moved used index from XXX to YYY" assertions.

The solution is to split out host notifier handling
from vhost VQ setup and disable notifiers as our last step
when we stop vhost-net. For symmetry enable them first thing
on start.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
hw/vhost.c
hw/vhost.h
hw/vhost_net.c