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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




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-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux