summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorDavid S. Miller <davem@sunset.davemloft.net>2007-03-01 20:46:13 +0100
committerDavid S. Miller <davem@sunset.davemloft.net>2007-04-26 10:55:09 +0200
commita378fd0ee8ea6af5dafd0ab3d634f22b926b5ac4 (patch)
tree681ef99b1448ac2ee83ff70719af068fca4f81d1 /arch
parent[SPARC64]: Minor cleanups to schizo pci controller driver. (diff)
downloadlinux-a378fd0ee8ea6af5dafd0ab3d634f22b926b5ac4.tar.xz
linux-a378fd0ee8ea6af5dafd0ab3d634f22b926b5ac4.zip
[SPARC64]: Fix obppath pci device sysfs creation.
Need to traverse recursively down child busses else we only get the file created under devices at the top-level. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch')
-rw-r--r--arch/sparc64/kernel/pci.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/sparc64/kernel/pci.c b/arch/sparc64/kernel/pci.c
index ec0d12a48c2b..425e883e7e3b 100644
--- a/arch/sparc64/kernel/pci.c
+++ b/arch/sparc64/kernel/pci.c
@@ -585,6 +585,7 @@ static DEVICE_ATTR(obppath, S_IRUSR | S_IRGRP | S_IROTH, show_pciobppath_attr, N
static void __devinit pci_bus_register_of_sysfs(struct pci_bus *bus)
{
struct pci_dev *dev;
+ struct pci_bus *child_bus;
int err;
list_for_each_entry(dev, &bus->devices, bus_list) {
@@ -597,6 +598,8 @@ static void __devinit pci_bus_register_of_sysfs(struct pci_bus *bus)
*/
err = sysfs_create_file(&dev->dev.kobj, &dev_attr_obppath.attr);
}
+ list_for_each_entry(child_bus, &bus->children, node)
+ pci_bus_register_of_sysfs(child_bus);
}
struct pci_bus * __init pci_scan_one_pbm(struct pci_pbm_info *pbm)