Hi Ben, 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 create our device nodes.

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.

This has only been compile tested.

Signed-of-by: Sonny Rao <sonny...@linux.vnet.ibm.com>

Index: common/arch/powerpc/kernel/pci_of_scan.c
===================================================================
--- common/arch/powerpc/kernel.orig/pci_of_scan.c       2010-05-10 
20:00:40.000000000 -0500
+++ common/arch/powerpc/kernel/pci_of_scan.c    2010-05-10 20:03:04.000000000 
-0500
@@ -310,6 +310,8 @@ static void __devinit __of_scan_bus(stru
        /* 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;


-- 
Sonny Rao, LTC OzLabs, BML team
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to