lkml.org 
[lkml]   [2017]   [Sep]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH for 4.9 11/59] MIPS: fix mem= commandline processing
From
Date
Hi,

On 14.09.2017 21:17, Mathieu Malaterre wrote:
> On Thu, Sep 14, 2017 at 9:11 PM, Levin, Alexander (Sasha Levin)
> <alexander.levin@verizon.com> 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@verizon.com> wrote:
>>>> From: Marcin Nowakowski <marcin.nowakowski@imgtec.com>
>>>>
>>>> [ 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@imgtec.com>
>>>> Cc: linux-mips@linux-mips.org
>>>> 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@linux-mips.org>
>>>> Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
>>>> ---
>>>> 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.

Yes, there is this issue that Mathieu discovered that upstream suffers
from. My patch that fixes it has not yet been merged - but hopefully
will be included in the next release.
Luckily the issue is only seen with a specific set of commandline
arguments which are not even required - but are set as defaults by the
CI20 bootloader.

For this reason it's probably better not to include this patch in the
stable series without the followup fix (without it the kernel is also
subtly broken, just in a different way and that fault is less likely to
be seen by the users).

Marcin

\
 
 \ /
  Last update: 2017-09-15 07:45    [W:0.121 / U:0.116 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site