make pci_find_device() ARI aware. Signed-off-by: Isaku Yamahata <yamah...@valinux.co.jp> --- hw/pci.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/hw/pci.c b/hw/pci.c index 8d0e3df..851f350 100644 --- a/hw/pci.c +++ b/hw/pci.c @@ -1596,11 +1596,18 @@ PCIBus *pci_find_bus(PCIBus *bus, int bus_num) PCIDevice *pci_find_device(PCIBus *bus, int bus_num, int slot, int function) { + PCIDevice *d; bus = pci_find_bus(bus, bus_num); if (!bus) return NULL; + d = bus->parent_dev; + if (d && pci_is_express(d) && + pcie_cap_get_type(d) == PCI_EXP_TYPE_DOWNSTREAM && + !pcie_cap_is_ari_enabled(d) && slot > 0) { + return NULL; + } return bus->devices[PCI_DEVFN(slot, function)]; } -- 1.7.1.1