lkml.org 
[lkml]   [2020]   [Aug]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.8 32/38] Revert "powerpc/kasan: Fix shadow pages allocation failure"
    Date
    From: Christophe Leroy <christophe.leroy@csgroup.eu>

    commit b506923ee44ae87fc9f4de16b53feb313623e146 upstream.

    This reverts commit d2a91cef9bbdeb87b7449fdab1a6be6000930210.

    This commit moved too much work in kasan_init(). The allocation
    of shadow pages has to be moved for the reason explained in that
    patch, but the allocation of page tables still need to be done
    before switching to the final hash table.

    First revert the incorrect commit, following patch redoes it
    properly.

    Fixes: d2a91cef9bbd ("powerpc/kasan: Fix shadow pages allocation failure")
    Cc: stable@vger.kernel.org
    Reported-by: Erhard F. <erhard_f@mailbox.org>
    Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=208181
    Link: https://lore.kernel.org/r/3667deb0911affbf999b99f87c31c77d5e870cd2.1593690707.git.christophe.leroy@csgroup.eu
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    arch/powerpc/include/asm/kasan.h | 2 ++
    arch/powerpc/mm/init_32.c | 2 ++
    arch/powerpc/mm/kasan/kasan_init_32.c | 4 +---
    3 files changed, 5 insertions(+), 3 deletions(-)

    --- a/arch/powerpc/include/asm/kasan.h
    +++ b/arch/powerpc/include/asm/kasan.h
    @@ -27,10 +27,12 @@

    #ifdef CONFIG_KASAN
    void kasan_early_init(void);
    +void kasan_mmu_init(void);
    void kasan_init(void);
    void kasan_late_init(void);
    #else
    static inline void kasan_init(void) { }
    +static inline void kasan_mmu_init(void) { }
    static inline void kasan_late_init(void) { }
    #endif

    --- a/arch/powerpc/mm/init_32.c
    +++ b/arch/powerpc/mm/init_32.c
    @@ -171,6 +171,8 @@ void __init MMU_init(void)
    btext_unmap();
    #endif

    + kasan_mmu_init();
    +
    setup_kup();

    /* Shortly after that, the entire linear mapping will be available */
    --- a/arch/powerpc/mm/kasan/kasan_init_32.c
    +++ b/arch/powerpc/mm/kasan/kasan_init_32.c
    @@ -117,7 +117,7 @@ static void __init kasan_unmap_early_sha
    kasan_update_early_region(k_start, k_end, __pte(0));
    }

    -static void __init kasan_mmu_init(void)
    +void __init kasan_mmu_init(void)
    {
    int ret;
    struct memblock_region *reg;
    @@ -146,8 +146,6 @@ static 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);

    \
     
     \ /
      Last update: 2020-08-10 17:22    [W:3.844 / U:0.300 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site