riscv: Rework kasan population functions
authorAlexandre Ghiti <alexghiti@rivosinc.com>
Fri, 3 Feb 2023 07:52:28 +0000 (08:52 +0100)
committerPalmer Dabbelt <palmer@rivosinc.com>
Wed, 19 Apr 2023 14:24:50 +0000 (07:24 -0700)
commit96f9d4daf745205fe869e9e5ac23199ef11c5448
treea43a6bc1676cc775c78f6a37473d40559d0d87db
parentcd0334e1c091fc0263ccf76e81d333a2ece4f3ab
riscv: Rework kasan population functions

Our previous kasan population implementation used to have the final kasan
shadow region mapped with kasan_early_shadow_page, because we did not clean
the early mapping and then we had to populate the kasan region "in-place"
which made the code cumbersome.

So now we clear the early mapping, establish a temporary mapping while we
populate the kasan shadow region with just the kernel regions that will
be used.

This new version uses the "generic" way of going through a page table
that may be folded at runtime (avoid the XXX_next macros).

It was tested with outline instrumentation on an Ubuntu kernel
configuration successfully.

Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Reviewed-by: Björn Töpel <bjorn@rivosinc.com>
Link: https://lore.kernel.org/r/20230203075232.274282-3-alexghiti@rivosinc.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
arch/riscv/mm/kasan_init.c