diff --git a/hw/pci.c b/hw/pci.c index 9ad63dd948..e91d2e693f 100644 --- a/hw/pci.c +++ b/hw/pci.c @@ -1558,7 +1558,7 @@ PCIBus *pci_find_bus(PCIBus *bus, int bus_num) /* try child bus */ QLIST_FOREACH(sec, &bus->child, sibling) { if (!bus->parent_dev /* pci host bridge */ - || (pci_bus_num(sec) >= bus_num && + || (pci_bus_num(sec) <= bus_num && bus_num <= bus->parent_dev->config[PCI_SUBORDINATE_BUS]) ) { ret = pci_find_bus(sec, bus_num); if (ret) {