Re: [PATCH] i386: additional fix for making ioremap()accept64-bit addresses

From: Jan Beulich
Date: Fri Apr 04 2008 - 11:33:54 EST


>>> Ingo Molnar <mingo@xxxxxxx> 04.04.08 14:55 >>>
>
>* Jan Beulich <jbeulich@xxxxxxxxxx> wrote:
>
>> The recent change to __ioremap()'s first parameter's type didn't yield
>> the intended effect as the first conditional inside the function would
>> still have filtered out any addresses with bits [63:32] set. Correct
>> last_addr's type and at once also add a check that the address range
>> doesn't extend into space hardware cannot support even theoretically.
>
>i fixed this in x86.git more than a week ago, see:
>
>| Subject: x86: ioremap of 64-bit resource on 32-bit kernel fix
>| From: Ingo Molnar <mingo@xxxxxxx>
>| Date: Tue, 25 Mar 2008 08:31:17 +0100
>
>but since 64-bit resources never worked on 32-bit and the initiator
>regression causing this discussion turned out to be something else, i
>delayed this fix as .26 material.
>
>the PHYSICAL_MASK fix looks good as an additional check - could you
>please resend it against x86.git/latest which has my fix already?

No need to do this afaics: you've already got the better

if (!phys_addr_valid(phys_addr)) {
printk(KERN_WARNING "ioremap: invalid physical address %llx\n",
phys_addr);
WARN_ON_ONCE(1);
return NULL;
}

in there. What needs fixing is that this returns 1 on 32-bits
unconditionally, whereas the x86-64 definition should also be used for
PAE (and the parameter type should also be resource_size_t).

Jan

--
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/