powerpc/kasan: Fix boot failure with RELOCATABLE && FSL_BOOKE
authorChristophe Leroy <christophe.leroy@c-s.fr>
Fri, 29 Nov 2019 14:26:41 +0000 (14:26 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 4 Dec 2019 13:11:43 +0000 (00:11 +1100)
When enabling CONFIG_RELOCATABLE and CONFIG_KASAN on FSL_BOOKE,
the kernel doesn't boot.

relocate_init() requires KASAN early shadow area to be set up because
it needs access to the device tree through generic functions.

Call kasan_early_init() before calling relocate_init()

Reported-by: Lexi Shao <shaolexi@huawei.com>
Fixes: 2edb16efc899 ("powerpc/32: Add KASAN support")
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/b58426f1664a4b344ff696d18cacf3b3e8962111.1575036985.git.christophe.leroy@c-s.fr
arch/powerpc/kernel/head_fsl_booke.S

index 838d9d4650c751a8985d957a84dea1e65f16d207..6f7a3a7162c524195adbcacebeb8fa15e75e7a38 100644 (file)
@@ -240,6 +240,9 @@ set_ivor:
 
        bl      early_init
 
+#ifdef CONFIG_KASAN
+       bl      kasan_early_init
+#endif
 #ifdef CONFIG_RELOCATABLE
        mr      r3,r30
        mr      r4,r31
@@ -266,9 +269,6 @@ set_ivor:
 /*
  * Decide what sort of machine this is and initialize the MMU.
  */
-#ifdef CONFIG_KASAN
-       bl      kasan_early_init
-#endif
        mr      r3,r30
        mr      r4,r31
        bl      machine_init