And also add code to enable kasan_flag_enabled, this is for later usage. And also need skip kasan_populate_early_vm_area_shadow() if kasan is disabled. Signed-off-by: Baoquan He Cc: linux-arm-kernel@lists.infradead.org --- arch/arm64/mm/kasan_init.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/arm64/mm/kasan_init.c b/arch/arm64/mm/kasan_init.c index d541ce45daeb..0e4ffe3f5d0e 100644 --- a/arch/arm64/mm/kasan_init.c +++ b/arch/arm64/mm/kasan_init.c @@ -384,6 +384,9 @@ void __init kasan_populate_early_vm_area_shadow(void *start, unsigned long size) { unsigned long shadow_start, shadow_end; + if (!kasan_enabled()) + return; + if (!is_vmalloc_or_module_addr(start)) return; @@ -397,6 +400,9 @@ void __init kasan_populate_early_vm_area_shadow(void *start, unsigned long size) void __init kasan_init(void) { + if (kasan_arg_disabled) + return; + kasan_init_shadow(); kasan_init_depth(); #if defined(CONFIG_KASAN_GENERIC) @@ -405,6 +411,7 @@ void __init kasan_init(void) * Software and Hardware Tag-Based modes still require * kasan_init_sw_tags() and kasan_init_hw_tags() correspondingly. */ + static_branch_enable(&kasan_flag_enabled); pr_info("KernelAddressSanitizer initialized (generic)\n"); #endif } -- 2.41.0