Re: Variable PTE_FILE_MAX_BITS

Andrew Morton (akpm@digeo.com)
Tue, 8 Apr 2003 22:55:14 -0700


Pete Zaitcev <zaitcev@redhat.com> wrote:
>
> Andrew,
>
> would you be so kind to take this and forward to Linus?
> I think this segment of the code is your brainchild.

y'know, as I was writing that code I thought "no architecture could be dumb
enough to make PTE_FILE_MAX_BITS variable".

> On sparc

Ah. That architecture.

>
> --- linux-2.5.66-bk11/mm/fremap.c 2003-04-05 13:26:24.000000000 -0800
> +++ linux-2.5.66-bk11-sparc/mm/fremap.c 2003-04-05 13:28:22.000000000 -0800
> @@ -136,10 +136,10 @@
> return err;
>
> /* Can we represent this offset inside this architecture's pte's? */
> -#if PTE_FILE_MAX_BITS < BITS_PER_LONG
> - if (pgoff + (size >> PAGE_SHIFT) >= (1UL << PTE_FILE_MAX_BITS))
> - return err;
> -#endif
> + /* This needs to be evaluated at runtime on some platforms */
> + if (PTE_FILE_MAX_BITS < BITS_PER_LONG)
> + if (pgoff + (size >> PAGE_SHIFT) >= (1UL << PTE_FILE_MAX_BITS))
> + return err;
>

The reason I didn't do this in the first place is that if PTE_FILE_MAX_BITS
is 32 (as it is for ia32 PAE), the compiler generates a warning about the
(1<<32). I guess it generates a bug, too.

Ho hum. I shall make it "1ULL".
-
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/