diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2007-03-01 14:46:13 -0500 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-04-26 04:55:09 -0400 |
commit | a378fd0ee8ea6af5dafd0ab3d634f22b926b5ac4 (patch) | |
tree | 681ef99b1448ac2ee83ff70719af068fca4f81d1 /arch | |
parent | bc606f3c917aa453fca62b76c8e9998b4171f4fa (diff) |
[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.c | 3 |
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 | |||
585 | static void __devinit pci_bus_register_of_sysfs(struct pci_bus *bus) | 585 | static void __devinit pci_bus_register_of_sysfs(struct pci_bus *bus) |
586 | { | 586 | { |
587 | struct pci_dev *dev; | 587 | struct pci_dev *dev; |
588 | struct pci_bus *child_bus; | ||
588 | int err; | 589 | int err; |
589 | 590 | ||
590 | list_for_each_entry(dev, &bus->devices, bus_list) { | 591 | 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) | |||
597 | */ | 598 | */ |
598 | err = sysfs_create_file(&dev->dev.kobj, &dev_attr_obppath.attr); | 599 | err = sysfs_create_file(&dev->dev.kobj, &dev_attr_obppath.attr); |
599 | } | 600 | } |
601 | list_for_each_entry(child_bus, &bus->children, node) | ||
602 | pci_bus_register_of_sysfs(child_bus); | ||
600 | } | 603 | } |
601 | 604 | ||
602 | struct pci_bus * __init pci_scan_one_pbm(struct pci_pbm_info *pbm) | 605 | struct pci_bus * __init pci_scan_one_pbm(struct pci_pbm_info *pbm) |