lkml.org 
[lkml]   [2010]   [Jun]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 2/4] x86: ioremap: fix physical address check
    (2010/06/14 17:23), Kenji Kaneshige wrote:
    > (2010/06/14 15:38), Maciej W. Rozycki wrote:
    >> On Mon, 14 Jun 2010, Kenji Kaneshige wrote:
    >>
    >>> - Architectural limit of physical address in x86 32-bit mode is 40-bit
    >>> (depnds on processor version).
    >>
    >> According to documentation I happen to have handy this limit is actually
    >> 52 bits (and space is currently available in the data structures used for
    >> a possible future extension up to 63 bits).
    >
    > Thank you for pointing it out. I misunderstood that.
    >
    > Now I think I need to add additional check to see if specified
    > physical address can be handled by x86 ioremap(), instead of
    > changing phys_addr_valid(). The code would be
    >
    > static void __iomem *__ioremap_caller(...)
    > {
    > ...
    > #if defined(CONFIG_X86_32) && defined(CONFIG_X86_PAE)
    > if (phys_addr is higer than 36-bit) {
    > printk(KERN_INFO "ioremap can't map physical address %llx\n",
    > return NULL;
    > }
    > #endif
    > ...
    > }

    Please ignore above again. Sorry for inconvenient.
    According to the comment from H. Peter Anvin, 36-bit limit is on
    RAM in 32-bit mode. So this approach is wrong.

    Now I guess there is a bug that doesn't handle physical address
    higher than 32-bit properly somewhere...

    Thanks,
    Kenji Kaneshige



    \
     
     \ /
      Last update: 2010-06-14 11:05    [W:0.029 / U:213.364 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site