Message ID | 1359314629-18651-10-git-send-email-yinghai@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Bjorn Helgaas |
Headers | show |
diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c index 505731b..b4b4032 100644 --- a/arch/x86/pci/common.c +++ b/arch/x86/pci/common.c @@ -447,11 +447,14 @@ void __init dmi_check_pciprobe(void) struct pci_bus * __devinit pcibios_scan_root(int busnum) { - struct pci_bus *bus = NULL; + struct pci_host_bridge *host_bridge = NULL; + struct pci_bus *bus; - while ((bus = pci_find_next_bus(bus)) != NULL) { - if (bus->number == busnum) { + for_each_pci_host_bridge(host_bridge) { + if (host_bridge->bus->number == busnum) { /* Already scanned */ + bus = host_bridge->bus; + put_device(&host_bridge->dev); return bus; } }
Replace that with hotplug-safe version for iteration. Signed-off-by: Yinghai Lu <yinghai@kernel.org> Cc: x86@kernel.org --- arch/x86/pci/common.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)