]> git.neil.brown.name Git - history.git/commitdiff
[PCI] pci-6 - Fix scanning of non-zero functions
authorRussell King <rmk@flint.arm.linux.org.uk>
Sun, 16 Mar 2003 21:33:30 +0000 (21:33 +0000)
committerRussell King <rmk@flint.arm.linux.org.uk>
Sun, 16 Mar 2003 21:33:30 +0000 (21:33 +0000)
Fix breakage in pci-3 - we scanned all functions if function 0 was not
present.  This causes some host bridges to lock up when scanning devfn
255 on PPC machines.

drivers/pci/probe.c

index 1c66d319f420e73fc51ad8791a9c272ae7d62c88..2715583870db46caaccb1e13f4acdd60945bfe1e 100644 (file)
@@ -520,11 +520,14 @@ int __devinit pci_scan_slot(struct pci_bus *bus, int devfn)
                struct pci_dev *dev;
 
                dev = pci_scan_device(bus, devfn);
-               if (!dev)
-                       continue;
-
-               if (func != 0)
+               if (func == 0) {
+                       if (!dev)
+                               break;
+               } else {
+                       if (!dev)
+                               continue;
                        dev->multifunction = 1;
+               }
 
                /* Fix up broken headers */
                pci_fixup_device(PCI_FIXUP_HEADER, dev);