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

Geert Uytterhoeven geert at linux-m68k.org
Fri Oct 14 01:25:56 EST 2011


On Thu, Oct 13, 2011 at 16:10, Tabi Timur-B04825 <B04825 at freescale.com> wrote:
> On Wed, Oct 12, 2011 at 11:15 AM, Geert Uytterhoeven
> <geert at linux-m68k.org> 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 at linux-m68k.org

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


More information about the Linuxppc-dev mailing list