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
.