powerpc/8xx: set STACK_END_MAGIC earlier on the init_stack
authorChristophe Leroy <christophe.leroy@c-s.fr>
Wed, 21 Aug 2019 10:20:51 +0000 (10:20 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 28 Aug 2019 01:31:18 +0000 (11:31 +1000)
Today, the STACK_END_MAGIC is set on init_stack in start_kernel().

To avoid a false 'Thread overran stack, or stack corrupted' message
on early Oopses, setup STACK_END_MAGIC as soon as possible.

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/54f67bb7ac486c1350f2fa8905cd279f94b9dfb1.1566382841.git.christophe.leroy@c-s.fr
arch/powerpc/kernel/head_8xx.S

index 5db461d..19f583e 100644 (file)
@@ -15,6 +15,7 @@
  */
 
 #include <linux/init.h>
+#include <linux/magic.h>
 #include <asm/processor.h>
 #include <asm/page.h>
 #include <asm/mmu.h>
@@ -717,6 +718,9 @@ start_here:
        /* stack */
        lis     r1,init_thread_union@ha
        addi    r1,r1,init_thread_union@l
+       lis     r0, STACK_END_MAGIC@h
+       ori     r0, r0, STACK_END_MAGIC@l
+       stw     r0, 0(r1)
        li      r0,0
        stwu    r0,THREAD_SIZE-STACK_FRAME_OVERHEAD(r1)