Based on Rusty's patches. Coding style and funny jokes are his. Bugs and a star wars reference (should be easy to spot) are mine. Untested, but useful as basis for beginning the qemu work. TODO: = simplify probing: use a common probe function, probe with modern driver first, if that fails - probe with legacy driver. BUGS: ATM legacy driver can win and drive a transitional device Until this is fixed, to test, disable transitional mode in device More ideas (optional): = allow disabling legacy driver = support shared IRQ for config, read ISR = allocate VQ ring in chunks, good for large rings = use less meory for small VQ ring in chunks, good for large rings General TODOs: = add config generation support = move alloc_virtqueue_pages to virtio core, reuse in e.g. ccw Michael S Tsirkin (1): pci: add pci_iomap_range Michael S. Tsirkin (2): virtio_pci: add VIRTIO_PCI_NO_LEGACY virtio_pci: modern driver Rusty Russell (2): virtio-pci: define layout for virtio 1.0 virtio_pci: macros for PCI layout offsets. drivers/virtio/virtio_pci_common.h | 23 +- include/asm-generic/pci_iomap.h | 5 + include/uapi/linux/virtio_pci.h | 106 ++++++- drivers/virtio/virtio_pci_modern.c | 621 +++++++++++++++++++++++++++++++++++++ lib/pci_iomap.c | 46 ++- drivers/virtio/Makefile | 2 +- 6 files changed, 788 insertions(+), 15 deletions(-) create mode 100644 drivers/virtio/virtio_pci_modern.c -- MST _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization