ChangeSet 1.1367, 2003/07/03 15:51:45-07:00, willy@debian.org

[PATCH] PCI: arch/i386/pci/irq.c should use pci_find_bus
Use pci_find_bus rather than relying on the return value of pci_scan_bus.


 arch/i386/pci/irq.c |   11 +++++------
 1 files changed, 5 insertions(+), 6 deletions(-)


diff -Nru a/arch/i386/pci/irq.c b/arch/i386/pci/irq.c
--- a/arch/i386/pci/irq.c	Thu Jul  3 18:16:48 2003
+++ b/arch/i386/pci/irq.c	Thu Jul  3 18:16:48 2003
@@ -102,13 +102,12 @@
 #endif
 		busmap[e->bus] = 1;
 	}
-	for(i=1; i<256; i++)
-		/*
-		 *  It might be a secondary bus, but in this case its parent is already
-		 *  known (ascending bus order) and therefore pci_scan_bus returns immediately.
-		 */
-		if (busmap[i] && pci_scan_bus(i, &pci_root_ops, NULL))
+	for(i = 1; i < 256; i++) {
+		if (!busmap[i] || pci_find_bus(0, i))
+			continue;
+		if (pci_scan_bus(i, &pci_root_ops, NULL))
 			printk(KERN_INFO "PCI: Discovered primary peer bus %02x [IRQ]\n", i);
+	}
 	pcibios_last_bus = -1;
 }