Re: [PATCH] uio: Support 36-bit physical addresses on 32-bit systems

From: Geert Uytterhoeven
Date: Thu Oct 13 2011 - 10:26:00 EST


On Thu, Oct 13, 2011 at 16:10, Tabi Timur-B04825 <B04825@xxxxxxxxxxxxx> wrote:
> On Wed, Oct 12, 2011 at 11:15 AM, Geert Uytterhoeven
> <geert@xxxxxxxxxxxxxx> wrote:
>>
>>> Do we believe phys_addr_t is always greater than or equal to size need for logical & virtual addresses?
>>
>> Yes:
>>
>> #ifdef CONFIG_PHYS_ADDR_T_64BIT
>> typedef u64 phys_addr_t;
>> #else
>> typedef u32 phys_addr_t;
>> #endif
>
> This isn't really an answer to the question. ÂThis just says that
> phys_addr_t can be 64-bit. ÂI don't see anywhere in the kernel that we
> *enforce* or *require* that sizeof(phys_addr_t) >= sizeof(void *).

You deleted this part:

config PHYS_ADDR_T_64BIT
def_bool 64BIT || ARCH_PHYS_ADDR_T_64BIT

which enforces that PHYS_ADDR_T_64BIT is enabled if 64BIT is set.

It still doesn't protect against 64-bit architectures not setting 64BIT,
but they have worse problems ;-)

On 32-bit platforms, void * is 32-bit, and phys_addr_t is either
32-bit or 64-bit.
On 64-bit platforms (which are required to set 64BIT), void * is 64-bit,
just like phys_addr_t.

Gr{oetje,eeting}s,

            Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
             Â Â -- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/