Re: [PATCH 0/1] Recurse when searching for empty slots in resourcestrees

From: Linus Torvalds
Date: Tue Jun 16 2009 - 18:20:07 EST




On Tue, 16 Jun 2009, Andrew Patterson wrote:
>
> I recently ran into a resource collision problem where PCI hot-plug
> operations are failing for certain PCI topologies. One case
> illustrating the problem is using a QLogic PCIe HBA in a slot with a
> PCIe root port as its parent bus. Here is an abbreviated lspci output
> for this topology:

I think the problem is real, but the fix is wrong.

> After boot, the resource tree looks like:
>
> f0000000-fdffffff : PCI Bus 0000:c3
> f0000000-fdffffff : PCI Bus 0000:c2

So the problem is 9if I get this correctly) that c3 should be _inside_ c2.
No?

But you fix it by making find_resource always go as deep as it can (if I
read the code correctly). Which is not necessarily always what we want
either - we've had this kind of confusion before, and the problem is that
different users of find_resource simply want different things.

The deeper problem (I think) is that the whole "find c3 resource" thing
should not have started from the root IN THE FIRST PLACE. I think it
should have started from its parent resources (and then, as a special
case, if the parent is transparent, look into the parent of the parent,
etc - in which case it can easily end up in the root in the end, but only
if it couldn't fit things in a parent window).

And I'm almost certain that I've seen that patch from Ivan at some point,
but it was after the merge window closed so it didn't get merged.

Ivan? Or anybody else who remembers the patch?

Linus
--
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/