Re: [PATCH 11/15] powerpc: convert to setup_initial_init_mm()

From: Kefeng Wang
Date: Sun May 30 2021 - 21:06:01 EST



On 2021/5/30 0:16, Christophe Leroy wrote:
Kefeng Wang <wangkefeng.wang@xxxxxxxxxx> a écrit :

Use setup_initial_init_mm() helper to simplify code.

Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
Cc: linuxppc-dev@xxxxxxxxxxxxxxxx
Signed-off-by: Kefeng Wang <wangkefeng.wang@xxxxxxxxxx>
---
 arch/powerpc/kernel/setup-common.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c
index 046fe21b5c3b..c046d99efd18 100644
--- a/arch/powerpc/kernel/setup-common.c
+++ b/arch/powerpc/kernel/setup-common.c
@@ -928,10 +928,7 @@ void __init setup_arch(char **cmdline_p)

     klp_init_thread_info(&init_task);

-    init_mm.start_code = (unsigned long)_stext;
-    init_mm.end_code = (unsigned long) _etext;
-    init_mm.end_data = (unsigned long) _edata;
-    init_mm.brk = klimit;
+    setup_initial_init_mm(_stext, _etext, _edata, _end);

This looks wrong, should be klimit instead of _end IIUC

see  arch/powerpc/kernel/setup-common.c:

unsigned long klimit = (unsigned long) _end;

the setup_initial_init_mm helper [1] should use the original _end


+static inline void setup_initial_init_mm(char *start_code,
+ char *end_code,
+ char *end_data,
+ char *brk)
+{
+ init_mm.start_code = (unsigned long)start_code;
+ init_mm.end_code = (unsigned long)end_code;
+ init_mm.end_data = (unsigned long)end_data;
+ init_mm.brk = (unsigned long)brk;
+}

[1] https://lkml.org/lkml/2021/5/29/84



     mm_iommu_init(&init_mm);
     irqstack_early_init();
--
2.26.2


.