summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSonny Rao <sonnyrao@us.ibm.com>2010-05-10 19:13:41 +0400
committerGreg Kroah-Hartman <gregkh@suse.de>2011-11-08 01:46:46 +0400
commit3d5cca93fd8cd4236872a60072552a2048f16e1e (patch)
treef79a5c6531b72512eda0e30ee6a867e317860837
parentb2b33e0577d3e7c8c22476021872c607173de41e (diff)
downloadlinux-3d5cca93fd8cd4236872a60072552a2048f16e1e.tar.xz
powerpc/pci: Check devices status property when scanning OF tree
commit 5b339bdf164d8aee394609768f7e2e4415b0252a upstream. We ran into an issue where it looks like we're not properly ignoring a pci device with a non-good status property when we walk the device tree and instanciate the Linux side PCI devices. However, the EEH init code does look for the property and disables EEH on these devices. This leaves us in an inconsistent where we are poking at a supposedly bad piece of hardware and RTAS will block our config cycles because EEH isn't enabled anyway. Signed-of-by: Sonny Rao <sonnyrao@linux.vnet.ibm.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--arch/powerpc/kernel/pci_of_scan.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/pci_of_scan.c b/arch/powerpc/kernel/pci_of_scan.c
index 4aa17401657b..5c3c8c92d57c 100644
--- a/arch/powerpc/kernel/pci_of_scan.c
+++ b/arch/powerpc/kernel/pci_of_scan.c
@@ -310,6 +310,8 @@ static void __devinit __of_scan_bus(struct device_node *node,
/* Scan direct children */
for_each_child_of_node(node, child) {
pr_debug(" * %s\n", child->full_name);
+ if (!of_device_is_available(child))
+ continue;
reg = of_get_property(child, "reg", &reglen);
if (reg == NULL || reglen < 20)
continue;