[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250812124941.69508-11-bhe@redhat.com>
Date: Tue, 12 Aug 2025 20:49:39 +0800
From: Baoquan He <bhe@...hat.com>
To: linux-mm@...ck.org
Cc: ryabinin.a.a@...il.com,
glider@...gle.com,
andreyknvl@...il.com,
dvyukov@...gle.com,
vincenzo.frascino@....com,
akpm@...ux-foundation.org,
kasan-dev@...glegroups.com,
linux-kernel@...r.kernel.org,
kexec@...ts.infradead.org,
sj@...nel.org,
lorenzo.stoakes@...cle.com,
elver@...gle.com,
snovitoll@...il.com,
Baoquan He <bhe@...hat.com>
Subject: [PATCH v2 10/12] arch/xtensa: don't initialize kasan if it's disabled
And also add code to enable kasan_flag_enabled, this is for later
usage.
Here call jump_label_init() early in setup_arch() so that later
kasan_init() can enable static key kasan_flag_enabled. Put
jump_label_init() beofre parse_early_param() as other architectures
do.
Signed-off-by: Baoquan He <bhe@...hat.com>
---
arch/xtensa/kernel/setup.c | 1 +
arch/xtensa/mm/kasan_init.c | 6 ++++++
2 files changed, 7 insertions(+)
diff --git a/arch/xtensa/kernel/setup.c b/arch/xtensa/kernel/setup.c
index f72e280363be..aabeb23f41fa 100644
--- a/arch/xtensa/kernel/setup.c
+++ b/arch/xtensa/kernel/setup.c
@@ -352,6 +352,7 @@ void __init setup_arch(char **cmdline_p)
mem_reserve(__pa(_SecondaryResetVector_text_start),
__pa(_SecondaryResetVector_text_end));
#endif
+ jump_label_init();
parse_early_param();
bootmem_init();
kasan_init();
diff --git a/arch/xtensa/mm/kasan_init.c b/arch/xtensa/mm/kasan_init.c
index f39c4d83173a..4a7b77f47225 100644
--- a/arch/xtensa/mm/kasan_init.c
+++ b/arch/xtensa/mm/kasan_init.c
@@ -70,6 +70,9 @@ void __init kasan_init(void)
{
int i;
+ if (kasan_arg_disabled)
+ return;
+
BUILD_BUG_ON(KASAN_SHADOW_OFFSET != KASAN_SHADOW_START -
(KASAN_START_VADDR >> KASAN_SHADOW_SCALE_SHIFT));
BUILD_BUG_ON(VMALLOC_START < KASAN_START_VADDR);
@@ -92,6 +95,9 @@ void __init kasan_init(void)
local_flush_tlb_all();
memset(kasan_early_shadow_page, 0, PAGE_SIZE);
+ /* KASAN is now initialized, enable it. */
+ static_branch_enable(&kasan_flag_enabled);
+
/* At this point kasan is fully initialized. Enable error messages. */
current->kasan_depth = 0;
pr_info("KernelAddressSanitizer initialized\n");
--
2.41.0
Powered by blists - more mailing lists