Re: [PATCH] Resource: wrong resource window calculation

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

 



On Thu, Sep 22, 2011 at 09:50:48PM +1200, Michal Ludvig wrote:
> On 09/22/2011 07:48 PM, Ram Pai wrote:
> >   	Resource: wrong resource window calculation
> >
> >__find_resource() incorrectly returns a resource window which overlaps an
> >existing allocated window. This happens when the parent's resource-window spans
> >0x00000000 to 0xffffffff and is entirely allocated to all its children
> >resource-windows.
> >
> >__find_resource() looks for gaps in resource allocation among the children
> >resource windows.  When it encounters the last child window it blindly tries
> >the range next to one allocated to the last child. Since the last child's
> >window ends at 0xffffffff the calculation overflows, leading the algorithm to
> >believe that any window in the range 0x0000000 to 0xfffffff is available for
> >allocation. This leads to a conflicting window allocation.
> >
> >Michal Ludvig reported this issue seen on his platform. The following patch
> >fixes the problem and has been verified by Michal. I believe this bug has been
> >there for ages. It got exposed by git commit
> >2bbc6942273b5b3097bd265d82227bdd84b351b2
> >[PATCH] PCI : ability to relocate assigned pci-resources
> >
> >Signed-off-by: Ram Pai<linuxram@xxxxxxxxxx>
> 
> Tested-by: Michal Ludvig <mludvig@xxxxxxxxxxxx>
> 
> Works fine on top of 3.1.0-rc7 and solves the problem with my Jetway board.
> 
> Thanks Ram!
> 
> M.

Linus,

	Do you plan to take this patch for 3.1? It fixes a regression w.r.t 3.0
	https://bugzilla.kernel.org/show_bug.cgi?id=42002 captures the bug report.

RP

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