Re: [PATCH] acpi: pci_root: fix NULL pointer deref after resumefrom suspend

From: Alex Chiang
Date: Tue Sep 29 2009 - 16:50:32 EST


* Rafael J. Wysocki <rjw@xxxxxxx>:
> On Tuesday 29 September 2009, Danny Feng wrote:
> > Is there any cases that pdev->subordinate is NULL while pdev is bridge
> > device?
> > From pci_slot.c::walk_p2p_bridge, there's code like following:
> >
> > dev = pci_get_slot(pci_bus, PCI_DEVFN(device, function));
> > if (!dev || !dev->subordinate)
> > goto out;
> >
> > It looks like dev->subordinate can be NULL even if in p2p
> > bridge, right?

In the code you post above, that results from doing an ACPI
namespace walk, which will definitely find non-bridge devices.

> Right, in general, but in this particular case each device we
> inspect is supposed to be a parent of another device, which
> implies that there's a bus below it (given that it's a PCI
> device).

Right, that's why I'm surprised that my assumption broke. But now
that I see that a dock device is involved, maybe that's not so
surprising.

/ac

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/