On 2021/5/30 0:16, Christophe Leroy wrote:
Kefeng Wang <[email protected]> a écrit :

Use setup_initial_init_mm() helper to simplify code.

Cc: Michael Ellerman <[email protected]>
Cc: Benjamin Herrenschmidt <[email protected]>
Cc: [email protected]
Signed-off-by: Kefeng Wang <[email protected]>
---
 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


.

Reply via email to