]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/pci/bus.c
PCI: fix issue with busses registering multiple times in sysfs
[linux-2.6-omap-h63xx.git] / drivers / pci / bus.c
index ef5a6a245f5fa36363d513e5aa35fef248a499a4..d708358326e556ae03e00b213e89dd1baf0dceff 100644 (file)
@@ -143,15 +143,21 @@ void pci_bus_add_devices(struct pci_bus *bus)
                        /* register the bus with sysfs as the parent is now
                         * properly registered. */
                        child_bus = dev->subordinate;
+                       if (child_bus->is_added)
+                               continue;
                        child_bus->dev.parent = child_bus->bridge;
                        retval = device_register(&child_bus->dev);
-                       if (!retval)
+                       if (retval)
+                               dev_err(&dev->dev, "Error registering pci_bus,"
+                                       " continuing...\n");
+                       else {
+                               child_bus->is_added = 1;
                                retval = device_create_file(&child_bus->dev,
                                                        &dev_attr_cpuaffinity);
+                       }
                        if (retval)
-                               dev_err(&dev->dev, "Error registering pci_bus"
-                                       " device bridge symlink,"
-                                       " continuing...\n");
+                               dev_err(&dev->dev, "Error creating cpuaffinity"
+                                       " file, continuing...\n");
                }
        }
 }