forked from TencentOS/TencentOS-kernel
powerpc/kasan: Fix shadow pages allocation failure
commit d2a91cef9bbdeb87b7449fdab1a6be6000930210 upstream.
Doing kasan pages allocation in MMU_init is too early, kernel doesn't
have access yet to the entire memory space and memblock_alloc() fails
when the kernel is a bit big.
Do it from kasan_init() instead.
Fixes: 2edb16efc899 ("powerpc/32: Add KASAN support")
Cc: stable@vger.kernel.org
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/c24163ee5d5f8cdf52fefa45055ceb35435b8f15.1589866984.git.christophe.leroy@csgroup.eu
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
17b32e1033
commit
62eaece780
|
|
@ -27,11 +27,9 @@
|
|||
|
||||
#ifdef CONFIG_KASAN
|
||||
void kasan_early_init(void);
|
||||
void kasan_mmu_init(void);
|
||||
void kasan_init(void);
|
||||
#else
|
||||
static inline void kasan_init(void) { }
|
||||
static inline void kasan_mmu_init(void) { }
|
||||
#endif
|
||||
|
||||
#endif /* __ASSEMBLY */
|
||||
|
|
|
|||
|
|
@ -175,8 +175,6 @@ void __init MMU_init(void)
|
|||
btext_unmap();
|
||||
#endif
|
||||
|
||||
kasan_mmu_init();
|
||||
|
||||
setup_kup();
|
||||
|
||||
/* Shortly after that, the entire linear mapping will be available */
|
||||
|
|
|
|||
|
|
@ -129,7 +129,7 @@ static void __init kasan_remap_early_shadow_ro(void)
|
|||
flush_tlb_kernel_range(KASAN_SHADOW_START, KASAN_SHADOW_END);
|
||||
}
|
||||
|
||||
void __init kasan_mmu_init(void)
|
||||
static void __init kasan_mmu_init(void)
|
||||
{
|
||||
int ret;
|
||||
struct memblock_region *reg;
|
||||
|
|
@ -156,6 +156,8 @@ void __init kasan_mmu_init(void)
|
|||
|
||||
void __init kasan_init(void)
|
||||
{
|
||||
kasan_mmu_init();
|
||||
|
||||
kasan_remap_early_shadow_ro();
|
||||
|
||||
clear_page(kasan_early_shadow_page);
|
||||
|
|
|
|||
Loading…
Reference in New Issue