summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-03-13 21:16:22 +0100
committerLinus Torvalds <torvalds@linux-foundation.org>2008-03-13 21:16:22 +0100
commitebe168d52c6255cfaf701b488e9e9ed0f548da19 (patch)
tree7f81320e09983d749bc38047857563f7fd269480 /drivers
parentavoid endless loops in lib/swiotlb.c (diff)
parentPCI: fix issue with busses registering multiple times in sysfs (diff)
downloadlinux-ebe168d52c6255cfaf701b488e9e9ed0f548da19.tar.xz
linux-ebe168d52c6255cfaf701b488e9e9ed0f548da19.zip
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/pci-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/pci-2.6: PCI: fix issue with busses registering multiple times in sysfs
Diffstat (limited to 'drivers')
-rw-r--r--drivers/pci/bus.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/pci/bus.c b/drivers/pci/bus.c
index 6a9403d79e0c..d708358326e5 100644
--- a/drivers/pci/bus.c
+++ b/drivers/pci/bus.c
@@ -143,14 +143,18 @@ 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)
dev_err(&dev->dev, "Error registering pci_bus,"
" continuing...\n");
- else
+ else {
+ child_bus->is_added = 1;
retval = device_create_file(&child_bus->dev,
&dev_attr_cpuaffinity);
+ }
if (retval)
dev_err(&dev->dev, "Error creating cpuaffinity"
" file, continuing...\n");