• Christophe Leroy's avatar
    powerpc/kasan: Fix CONFIG_KASAN_VMALLOC for 8xx · 4c42dc5c
    Christophe Leroy authored
    Before the commit identified below, pages tables allocation was
    performed after the allocation of final shadow area for linear memory.
    But that commit switched the order, leading to page tables being
    already allocated at the time 8xx kasan_init_shadow_8M() is called.
    Due to this, kasan_init_shadow_8M() doesn't map the needed
    shadow entries because there are already page tables.
    
    kasan_init_shadow_8M() installs huge PMD entries instead of page
    tables. We could at that time free the page tables, but there is no
    point in creating page tables that get freed before being used.
    
    Only book3s/32 hash needs early allocation of page tables. For other
    variants, we can keep the initial order and create remaining page
    tables after the allocation of final shadow memory for linear mem.
    
    Move back the allocation of shadow page tables for
    CONFIG_KASAN_VMALLOC into kasan_init() after the loop which creates
    final shadow memory for linear mem.
    
    Fixes: 41ea93cf ("powerpc/kasan: Fix shadow pages allocation failure")
    Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/8ae4554357da4882612644a74387ae05525b2aaa.1599800716.git.christophe.leroy@csgroup.eu
    4c42dc5c
kasan_init_32.c 5.17 KB