vfio-pci: Quirk RTL8168 NIC
authorAlex Williamson <alex.williamson@redhat.com>
Fri, 30 May 2014 18:43:50 +0000 (12:43 -0600)
committerAlex Williamson <alex.williamson@redhat.com>
Fri, 30 May 2014 18:43:50 +0000 (12:43 -0600)
commit4cb47d281a995cb49e4652cb26bafb3ab2d9bd28
tree499bc5fefcf7cdcb7a96d46813514b0cf20c09ce
parentd7d3d6092cb7edc75dc49fb90c86dd5425ab4805
vfio-pci: Quirk RTL8168 NIC

This device is ridiculous.  It has two MMIO BARs, BAR4 and BAR2.  BAR4
hosts the MSI-X table, so oviously it would be too easy to access it
directly, instead it creates a window register in BAR2 that, among
other things, provides access to the MSI-X table.  This means MSI-X
doesn't work in the guest because the driver actually manages to
program the physical table.  When interrupt remapping is present, the
device MSI will be blocked.  The Linux driver doesn't make use of this
window, so apparently it's not required to make use of MSI-X.  This
quirk makes the device work with the Windows driver that does use this
window for MSI-X, but I certainly cannot recommend this device for
assignment (the Windows 7 driver also constantly pokes PCI config
space).

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
hw/misc/vfio.c