vfio/pci: Hide device PCIe capability on non-express buses for PCIe VMs
commit0282abf078c3353a178ab77a115828ce333181dd
authorAlex Williamson <alex.williamson@redhat.com>
Tue, 10 Nov 2015 19:11:08 +0000 (10 12:11 -0700)
committerAlex Williamson <alex.williamson@redhat.com>
Tue, 10 Nov 2015 19:11:08 +0000 (10 12:11 -0700)
tree2241d625a31616f4d628bcb5315a0f8932921241
parenta1a88589dc982f9f8b6c717c2ac98dd71dd4353d
vfio/pci: Hide device PCIe capability on non-express buses for PCIe VMs

When we have a PCIe VM, such as Q35, guests start to care more about
valid configurations of devices relative to the VM view of the PCI
topology.  Windows will error with a Code 10 for an assigned device if
a PCIe capability is found for a device on a conventional bus.  We
also have the possibility of IOMMUs, like VT-d, where the where the
guest may be acutely aware of valid express capabilities on physical
hardware.

Some devices, like tg3 are adversely affected by this due to driver
dependencies on the PCIe capability.  The only solution for such
devices is to attach them to an express capable bus in the VM.

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