[PATCH v3 0/2] arm: kasan: support CONFIG_KASAN_VMALLOC

Linus Walleij linus.walleij at linaro.org
Thu Mar 10 15:08:52 PST 2022


On Sun, Feb 27, 2022 at 2:48 PM Lecopzer Chen
<lecopzer.chen at mediatek.com> wrote:

> Since the framework of KASAN_VMALLOC is well-developed,
> It's easy to support for ARM that simply not to map shadow of VMALLOC
> area on kasan_init.
>
> Since the virtual address of vmalloc for Arm is also between
> MODULE_VADDR and 0x100000000 (ZONE_HIGHMEM), which means the shadow
> address has already included between KASAN_SHADOW_START and
> KASAN_SHADOW_END.
> Thus we need to change nothing for memory map of Arm.
>
> This can fix ARM_MODULE_PLTS with KASan, support KASan for higmem
> and provide the first step to support CONFIG_VMAP_STACK with Arm.
>
>
> Test on
> 1. Qemu with memory 2G and vmalloc=500M for 3G/1G mapping.
> 2. Qemu with memory 2G and vmalloc=500M for 3G/1G mapping + LPAE.
> 3. Qemu with memory 2G and vmalloc=500M for 2G/2G mapping.
>
> v3:
>     rebase on 5.17-rc5.
>     Add simple doc for "arm: kasan: support CONFIG_KASAN_VMALLOC"
>     Tweak commit message.

Ater testing this with my kernel-in-vmalloc patches and some hacks, I got
the kernel booting in the VMALLOC area with KASan enabled!
See:
https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator.git/log/?h=kernel-in-vmalloc-v5.17-rc1

That's a pretty serious stress test. So:
Tested-by: Linus Walleij <linus.walleij at linaro.org>
Reviewed-by: Linus Walleij <linus.walleij at linaro.org>
for the series.

I suppose you could put this into Russell's patch tracker, it's gonna be
for kernel v5.19 by now but why stress. It seems I can fix up
kernel-in-vmalloc on top and submit that for v5.19 as well.

Yours,
Linus Walleij



More information about the linux-arm-kernel mailing list