Re: [PATCH] mmap + wrapping around to 0

From: Dave Ashley (linux mailing list) (linux@xdr.com)
Date: Thu Nov 08 2001 - 13:03:21 EST


PAGE_ALIGN results in a multiple of PAGE_SIZE always.
If you subtract one inside, the end result will
be the same.

As an example:
map 0x1000 bytes at 0xfffff000
PAGE_ALIGN(0x1000) = 0x1000
PAGE_ALIGN(0x0fff) = 0x1000
PAGE_ALIGN(0x1000)-1 = 0x0fff
The difference is adding 0x1000 or 0xfff to
0xfffff000, and the result wrapping around
to 0, or going to 0xffffffff (the later
result is what we want and the comparison works).

-Dave

On Thu, 8 Nov 2001, Alan Cox wrote:

> > in the inline function do_mmap(), change
> > if ((offset + PAGE_ALIGN(len)) < offset)
> > to
> > if ((offset + PAGE_ALIGN(len)-1) < offset)
>
> Shouldnt that be
>
> PAGE_ALIGN(len-1)
>
> so you compute the page of the last byte ?
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>

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



This archive was generated by hypermail 2b29 : Thu Nov 15 2001 - 21:00:19 EST