From b71a405f0e38b9cecb633fd24a14626c662940e0 Mon Sep 17 00:00:00 2001 From: Kanglong Wang Date: Tue, 7 Apr 2026 10:41:29 +0800 Subject: [PATCH] LoongArch: Set kasan_early_stage as false at end of kasan_init() commit 5ec5ac4ca27e4daa234540ac32f9fc5219377d53 upstream kasan_arch_is_ready() indicates that kasan is fully initialized, so it should set kasan_early_stage as false to make kasan_arch_is_ready() returns true at end of kasan_init() like the other archs. Otherwise bringing up the master CPU failed when CONFIG_KASAN is set on the Loongson-3C6000 server machine, here are the call chains: kernel_entry() start_kernel() setup_arch() kasan_init() kasan_early_stage = false kasan_arch_is_ready() Signed-off-by: Tiezhu Yang Signed-off-by: Kanglong Wang --- arch/loongarch/mm/kasan_init.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/arch/loongarch/mm/kasan_init.c b/arch/loongarch/mm/kasan_init.c index 853a004a45cf..b098bbd80953 100644 --- a/arch/loongarch/mm/kasan_init.c +++ b/arch/loongarch/mm/kasan_init.c @@ -286,8 +286,6 @@ void __init kasan_init(void) /* Maps everything to a single page of zeroes */ kasan_pgd_populate(KASAN_SHADOW_START, KASAN_SHADOW_END, NUMA_NO_NODE, true); - kasan_early_stage = false; - /* Populate the linear mapping */ for_each_mem_range(i, &pa_start, &pa_end) { void *start = (void *)phys_to_virt(pa_start); @@ -317,5 +315,6 @@ void __init kasan_init(void) /* At this point kasan is fully initialized. Enable error messages */ init_task.kasan_depth = 0; + kasan_early_stage = false; pr_info("KernelAddressSanitizer initialized.\n"); } -- Gitee