Re: [PATCH for 4.9 11/59] MIPS: fix mem=X@Y commandline processing

From: Mathieu Malaterre
Date: Thu Sep 14 2017 - 15:18:10 EST


On Thu, Sep 14, 2017 at 9:11 PM, Levin, Alexander (Sasha Levin)
<alexander.levin@xxxxxxxxxxx> wrote:
> On Thu, Sep 14, 2017 at 08:59:05PM +0200, Mathieu Malaterre wrote:
>>On Thu, Sep 14, 2017 at 5:51 PM, Levin, Alexander (Sasha Levin)
>><alexander.levin@xxxxxxxxxxx> wrote:
>>> From: Marcin Nowakowski <marcin.nowakowski@xxxxxxxxxx>
>>>
>>> [ Upstream commit 73fbc1eba7ffa3bf0ad12486232a8a1edb4e4411 ]
>>>
>>> When a memory offset is specified through the commandline, add the
>>> memory in range PHYS_OFFSET:Y as reserved memory area.
>>> Otherwise the bootmem allocator is initialised with low page equal to
>>> min_low_pfn = PHYS_OFFSET, and in free_all_bootmem will process pages
>>> starting from min_low_pfn instead of PFN(Y).
>>>
>>> Signed-off-by: Marcin Nowakowski <marcin.nowakowski@xxxxxxxxxx>
>>> Cc: linux-mips@xxxxxxxxxxxxxx
>>> Patchwork: https://urldefense.proofpoint.com/v2/url?u=https-3A__patchwork.linux-2Dmips.org_patch_14613_&d=DwIBaQ&c=udBTRvFvXC5Dhqg7UHpJlPps3mZ3LRxpb6__0PomBTQ&r=bUtaaC9mlBij4OjEG_D-KPul_335azYzfC4Rjgomobo&m=6siOw0e29CYMhuJcboVwEeX-LcC1yJjtnGPVl_1tClQ&s=rP-QGn8HHjuow4b4qd6sfl_EEPoAKkxAffkh1zEq-kc&e=
>>> Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
>>> Signed-off-by: Sasha Levin <alexander.levin@xxxxxxxxxxx>
>>> ---
>>> arch/mips/kernel/setup.c | 4 ++++
>>> 1 file changed, 4 insertions(+)
>>>
>>> diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
>>> index f66e5ce505b2..38697f25d168 100644
>>> --- a/arch/mips/kernel/setup.c
>>> +++ b/arch/mips/kernel/setup.c
>>> @@ -589,6 +589,10 @@ static int __init early_parse_mem(char *p)
>>> start = memparse(p + 1, &p);
>>>
>>> add_memory_region(start, size, BOOT_MEM_RAM);
>>> +
>>> + if (start && start > PHYS_OFFSET)
>>> + add_memory_region(PHYS_OFFSET, start - PHYS_OFFSET,
>>> + BOOT_MEM_RESERVED);
>>> return 0;
>>> }
>>> early_param("mem", early_parse_mem);
>>
>>Does not work on MIPS Creator CI20. See:
>
> Hm, so upstream is actually broken right now?

Yes, at least on Creator CI20. You need to clear out all your mem=X@Y
from your boot command line, or apply the new patch I mentionned
above, or revert 73fbc1eba7ffa3bf0ad12486232a8a1edb4e4411.