[PATCH] ARM: mm: fix size rounding-down of arm_add_memory()

Geert Uytterhoeven geert at linux-m68k.org
Wed Aug 20 08:08:25 PDT 2014


Hi Yamada-san,

On Fri, Aug 1, 2014 at 2:37 PM, Masahiro Yamada
<yamada.m at jp.panasonic.com> wrote:
> Any comments for this patch?

Thanks for your patch!

I had a slightly different fix for the same issue, but apparently it got stuck
on the freshly installed machine that didn't have email set up yet ;-(

Acked-by: Geert Uytterhoeven <geert at linux-m68k.org>

early_init_dt_add_memory_arch() has the same bug, I'll resend my (also stuck)
fix for that.

> Thanks
>
> Best Regards
> Masahiro Yamada
>
>
>
> On Fri,  6 Jun 2014 12:32:47 +0900
> Masahiro Yamada <yamada.m at jp.panasonic.com> wrote:
>
>> The current rounding of "size" is wrong.
>>
>>     size -= start & ~PAGE_MASK;
>>
>> should be
>>
>>     size -= PAGE_SIZE - (start & ~PAGE_MASK);
>>
>> Or more simply
>>
>>     size -= aligned_start - start;
>>
>> Signed-off-by: Masahiro Yamada <yamada.m at jp.panasonic.com>
>> ---
>>  arch/arm/kernel/setup.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
>> index 50e198c..84508c0 100644
>> --- a/arch/arm/kernel/setup.c
>> +++ b/arch/arm/kernel/setup.c
>> @@ -641,8 +641,8 @@ int __init arm_add_memory(u64 start, u64 size)
>>        * Ensure that start/size are aligned to a page boundary.
>>        * Size is appropriately rounded down, start is rounded up.
>>        */
>> -     size -= start & ~PAGE_MASK;
>>       aligned_start = PAGE_ALIGN(start);
>> +     size -= aligned_start - start;
>>
>>  #ifndef CONFIG_ARCH_PHYS_ADDR_T_64BIT
>>       if (aligned_start > ULONG_MAX) {
>> --
>> 1.9.1

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 linux-arm-kernel mailing list