• Alexandre Ghiti's avatar
    riscv: Do not re-populate shadow memory with kasan_populate_early_shadow · cf11d011
    Alexandre Ghiti authored
    When calling this function, all the shadow memory is already populated
    with kasan_early_shadow_pte which has PAGE_KERNEL protection.
    kasan_populate_early_shadow write-protects the mapping of the range
    of addresses passed in argument in zero_pte_populate, which actually
    write-protects all the shadow memory mapping since kasan_early_shadow_pte
    is used for all the shadow memory at this point. And then when using
    memblock API to populate the shadow memory, the first write access to the
    kernel stack triggers a trap. This becomes visible with the next commit
    that contains a fix for asan-stack.
    
    We already manually populate all the shadow memory in kasan_early_init
    and we write-protect kasan_early_shadow_pte at the end of kasan_init
    which makes the calls to kasan_populate_early_shadow superfluous so
    we can remove them.
    Signed-off-by: default avatarAlexandre Ghiti <alexandre.ghiti@canonical.com>
    Fixes: e178d670 ("riscv/kasan: add KASAN_VMALLOC support")
    Fixes: 8ad8b727 ("riscv: Add KASAN support")
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarPalmer Dabbelt <palmerdabbelt@google.com>
    cf11d011
kasan_init.c 5.64 KB