qemu-irix/hw/virtio
Paolo Bonzini ce37df91f4 virtio: always use handle_aio_output if registered
Commit ad07cd6 ("virtio-scsi: always use dataplane path if ioeventfd is
active", 2016-10-30) and 9ffe337 ("virtio-blk: always use dataplane
path if ioeventfd is active", 2016-10-30) broke the virtio 1.0
indirect access registers.

The indirect access registers bypass the ioeventfd, so that virtio-blk
and virtio-scsi now repeatedly try to initialize dataplane instead of
triggering the guest->host EventNotifier.  Detect the situation by
checking vq->handle_aio_output; if it is not NULL, trigger the
EventNotifier, which is how the device expects to get notifications
and in fact the only thread-safe manner to deliver them.

Fixes: ad07cd6
Fixes: 9ffe337
Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
(cherry picked from commit e49a661840)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2017-03-27 21:07:21 -05:00
..
Makefile.objs virtio-crypto-pci: add virtio crypto pci support 2016-11-01 19:21:08 +02:00
trace-events balloon: Don't balloon roms 2017-03-16 12:10:38 -05:00
vhost-backend.c vhost-vsock: add virtio sockets device 2016-09-10 00:28:08 +03:00
vhost-user.c char: use qemu_chr_fe* functions with CharBackend argument 2016-10-24 15:27:21 +02:00
vhost-vsock.c virtio: cleanup VMSTATE_VIRTIO_DEVICE 2016-10-10 02:21:43 +03:00
vhost.c virtio: introduce grab/release_ioeventfd to fix vhost 2016-11-18 17:29:25 +02:00
virtio-balloon.c balloon: Don't balloon roms 2017-03-16 12:10:38 -05:00
virtio-bus.c virtio: introduce grab/release_ioeventfd to fix vhost 2016-11-18 17:29:25 +02:00
virtio-crypto-pci.c virtio-crypto: tag as not hotpluggable and migration 2016-11-15 17:20:36 +02:00
virtio-crypto.c virtio-crypto: fix possible integer and heap overflow 2017-03-16 12:10:39 -05:00
virtio-mmio.c virtio: access ISR atomically 2016-11-18 17:29:25 +02:00
virtio-pci.c virtio-pci: reset modern vq meta data 2017-03-16 12:10:42 -05:00
virtio-pci.h virtio-pci: Fix cross-version migration with older machines 2016-12-15 07:35:19 +00:00
virtio-rng.c virtio: cleanup VMSTATE_VIRTIO_DEVICE 2016-10-10 02:21:43 +03:00
virtio.c virtio: always use handle_aio_output if registered 2017-03-27 21:07:21 -05:00