alistair23-linux/drivers/virtio
Christoph Hellwig 07ec51480b virtio_pci: use shared interrupts for virtqueues
This lets IRQ layer handle dispatching IRQs to separate handlers for the
case where we don't have per-VQ MSI-X vectors, and allows us to greatly
simplify the code based on the assumption that we always have interrupt
vector 0 (legacy INTx or config interrupt for MSI-X) available, and
any other interrupt is request/freed throught the VQ, even if the
actual interrupt line might be shared in some cases.

This allows removing a great deal of variables keeping track of the
interrupt state in struct virtio_pci_device, as we can now simply walk the
list of VQs and deal with per-VQ interrupt handlers there, and only treat
vector 0 special.

Additionally clean up the VQ allocation code to properly unwind on error
instead of having a single global cleanup label, which is error prone,
and in this case also leads to more code.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2017-02-27 20:54:03 +02:00
..
Kconfig docs: fix locations of several documents that got moved 2016-10-24 08:12:35 -02:00
Makefile
virtio.c
virtio_balloon.c virtio: update balloon size in balloon "probe" 2016-10-31 00:21:41 +02:00
virtio_input.c virtio: make find_vqs() checkpatch.pl-friendly 2016-01-12 20:47:06 +02:00
virtio_mmio.c virtio_mmio: expose header to userspace 2017-02-27 16:31:23 +02:00
virtio_pci_common.c virtio_pci: use shared interrupts for virtqueues 2017-02-27 20:54:03 +02:00
virtio_pci_common.h virtio_pci: use shared interrupts for virtqueues 2017-02-27 20:54:03 +02:00
virtio_pci_legacy.c virtio_pci: remove struct virtio_pci_vq_info 2017-02-27 20:54:03 +02:00
virtio_pci_modern.c virtio_pci: remove struct virtio_pci_vq_info 2017-02-27 20:54:03 +02:00
virtio_ring.c Revert "vring: Force use of DMA API for ARM-based systems with legacy devices" 2017-02-03 23:38:50 +02:00