On Don, 2009-03-19 at 19:48 +0100, Maarten Maathuis wrote:
> >> >> + if ((CARD8 *)pPixData >= pExaScr->info->memoryBase &&
> >> >> + (CARD8 *)pPixData < (pExaScr->info->memoryBase +
> >> >> pExaScr->info->memorySize)) {
> >> >
> >> > (pExaScr->info->memoryBase + pExaScr->info->memorySize) could wrap
> >> > around to 0, in which case the latter check would always fail.
> >>
> >> I don't see how that failure is bad (considering it won't wrap for the
> >> cases that are offscreen).
> >
> > You don't seem to understand: pPixData < 0 is false for any value of
> > pPixData.
> >
>
> If it folds, then it means that (pExaScr->info->memoryBase +
> pExaScr->info->memorySize) is outside the range of a uint32_t or
> uint64_t, how much sense would a mapped memory range make if it didn't
> fit into address space?
It happens if the memory range is right at the end of address space.
We've been bitten by this in the radeon DRM before. :}
--
Earthling Michel Dänzer | http://www.vmware.com
Libre software enthusiast | Debian, X and DRI developer
_______________________________________________
xorg-devel mailing list
[email protected]
http://lists.x.org/mailman/listinfo/xorg-devel