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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@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.

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




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]