[PATCH] need check for devices with bad status status property in __of_scan_bus()
Sonny Rao
sonnyrao at us.ibm.com
Wed May 19 18:47:08 EST 2010
On Mon, May 10, 2010 at 08:13:41PM -0500, Sonny Rao wrote:
> 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 <sonnyrao at 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", ®len);
> if (reg == NULL || reglen < 20)
> continue;
Ok, it's now been actually tested with firmware
that marks some devices as failed and appears to work.
--
Sonny Rao, LTC OzLabs, BML team
More information about the Linuxppc-dev
mailing list