qemu/include/hw/virtio
Ladi Prosek 57094547df virtio-input: fix eventq batching
virtio_input_send buffers input events until it sees a SYNC. Then it
either sends or drops the entire batch, depending on whether eventq
has enough space available. The case to avoid here is partial sends
where only part of the batch would get to the guest.

Using virtqueue_get_avail_bytes to check the state of eventq was not
correct. The queue may have a smaller number of larger buffers
available so bytes may be enough but the batch would still not be
possible to send, leading to the "Huh?  No vq elem available" error.

Instead of checking available bytes, this patch optimistically pops
buffers from the queue and puts them back in case it runs out of
space and the batch needs to be dropped.

Signed-off-by: Ladi Prosek <lprosek@redhat.com>
Message-id: 1490365490-4854-3-git-send-email-lprosek@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2017-03-27 12:14:45 +02:00
..
vhost-backend.h vhost_net: device IOTLB support 2017-01-18 22:59:53 +02:00
vhost-scsi.h vhost-scsi: include linux/vhost.h 2015-09-25 12:04:41 +02:00
vhost-vsock.h vhost-vsock: add virtio sockets device 2016-09-10 00:28:08 +03:00
vhost.h vhost_net: device IOTLB support 2017-01-18 22:59:53 +02:00
virtio-access.h virtio: add virtio_*_phys_cached 2017-02-17 21:52:30 +02:00
virtio-balloon.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
virtio-blk.h virtio: Report real progress in VQ aio poll handler 2017-02-17 21:52:30 +02:00
virtio-bus.h virtio: convert to use DMA api 2017-01-10 05:56:58 +02:00
virtio-crypto.h virtio-crypto: using bh to handle dataq's requests 2016-11-01 19:21:08 +02:00
virtio-gpu.h virtio-gpu: track and limit host memory allocations 2016-12-20 14:19:08 +01:00
virtio-input.h virtio-input: fix eventq batching 2017-03-27 12:14:45 +02:00
virtio-net.h virtio/migration: Migrate virtio-net to VMState 2017-02-13 17:27:14 +00:00
virtio-rng.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
virtio-scsi.h virtio: Report real progress in VQ aio poll handler 2017-02-17 21:52:30 +02:00
virtio-serial.h virtio-serial: enable virtio console emergency write feature 2016-10-10 01:16:57 +03:00
virtio.h virtio: add MemoryListener to cache ring translations 2017-02-17 21:52:30 +02:00