Re: [PATCH v2] ARM: kasan: Only map modules if CONFIG_KASAN_VMALLOC=n

From: Linus Walleij
Date: Mon Sep 05 2022 - 09:38:55 EST


On Mon, Sep 5, 2022 at 2:28 PM Alexander A Sverdlin
<alexander.sverdlin@xxxxxxxxx> wrote:

> From: Alexander Sverdlin <alexander.sverdlin@xxxxxxxxx>
>
> In case CONFIG_KASAN_VMALLOC=y kasan_populate_vmalloc() allocates the
> shadow pages dynamically. But even worse is that kasan_release_vmalloc()
> releases them, which is not compatible with create_mapping() of
> MODULES_VADDR..MODULES_END range:
>
> BUG: Bad page state in process kworker/9:1 pfn:2068b
> page:e5e06160 refcount:0 mapcount:0 mapping:00000000 index:0x0
> flags: 0x1000(reserved)
> raw: 00001000 e5e06164 e5e06164 00000000 00000000 00000000 ffffffff 00000000
> page dumped because: PAGE_FLAGS_CHECK_AT_FREE flag(s) set
> bad because of flags: 0x1000(reserved)
> Modules linked in: ip_tables
> CPU: 9 PID: 154 Comm: kworker/9:1 Not tainted 5.4.188-... #1
> Hardware name: LSI Axxia AXM55XX
> Workqueue: events do_free_init
> unwind_backtrace
> show_stack
> dump_stack
> bad_page
> free_pcp_prepare
> free_unref_page
> kasan_depopulate_vmalloc_pte
> __apply_to_page_range
> apply_to_existing_page_range
> kasan_release_vmalloc
> __purge_vmap_area_lazy
> _vm_unmap_aliases.part.0
> __vunmap
> do_free_init
> process_one_work
> worker_thread
> kthread
>
> Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
> Signed-off-by: Alexander Sverdlin <alexander.sverdlin@xxxxxxxxx>

Thanks Alexander, will you submit this to Russell's patch tracker please?

Yours,
Linus Walleij