Commit b873e986 authored by Kuan-Ying Lee's avatar Kuan-Ying Lee Committed by Linus Torvalds

kasan: add kasan mode messages when kasan init

There are multiple kasan modes.  It makes sense that we add some
messages to know which kasan mode is active when booting up [1].

Link: https://bugzilla.kernel.org/show_bug.cgi?id=212195 [1]
Link: https://lkml.kernel.org/r/20211020094850.4113-1-Kuan-Ying.Lee@mediatek.comSigned-off-by: default avatarKuan-Ying Lee <Kuan-Ying.Lee@mediatek.com>
Reviewed-by: default avatarMarco Elver <elver@google.com>
Reviewed-by: default avatarDavid Hildenbrand <david@redhat.com>
Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Andrey Konovalov <andreyknvl@gmail.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: Chinwen Chang <chinwen.chang@mediatek.com>
Cc: Yee Lee <yee.lee@mediatek.com>
Cc: Nicholas Tang <nicholas.tang@mediatek.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent ab2f9d2d
...@@ -310,7 +310,7 @@ void __init kasan_init(void) ...@@ -310,7 +310,7 @@ void __init kasan_init(void)
kasan_init_depth(); kasan_init_depth();
#if defined(CONFIG_KASAN_GENERIC) #if defined(CONFIG_KASAN_GENERIC)
/* CONFIG_KASAN_SW_TAGS also requires kasan_init_sw_tags(). */ /* CONFIG_KASAN_SW_TAGS also requires kasan_init_sw_tags(). */
pr_info("KernelAddressSanitizer initialized\n"); pr_info("KernelAddressSanitizer initialized (generic)\n");
#endif #endif
} }
......
...@@ -106,6 +106,16 @@ static int __init early_kasan_flag_stacktrace(char *arg) ...@@ -106,6 +106,16 @@ static int __init early_kasan_flag_stacktrace(char *arg)
} }
early_param("kasan.stacktrace", early_kasan_flag_stacktrace); early_param("kasan.stacktrace", early_kasan_flag_stacktrace);
static inline const char *kasan_mode_info(void)
{
if (kasan_mode == KASAN_MODE_ASYNC)
return "async";
else if (kasan_mode == KASAN_MODE_ASYMM)
return "asymm";
else
return "sync";
}
/* kasan_init_hw_tags_cpu() is called for each CPU. */ /* kasan_init_hw_tags_cpu() is called for each CPU. */
void kasan_init_hw_tags_cpu(void) void kasan_init_hw_tags_cpu(void)
{ {
...@@ -177,7 +187,9 @@ void __init kasan_init_hw_tags(void) ...@@ -177,7 +187,9 @@ void __init kasan_init_hw_tags(void)
break; break;
} }
pr_info("KernelAddressSanitizer initialized\n"); pr_info("KernelAddressSanitizer initialized (hw-tags, mode=%s, stacktrace=%s)\n",
kasan_mode_info(),
kasan_stack_collection_enabled() ? "on" : "off");
} }
void kasan_alloc_pages(struct page *page, unsigned int order, gfp_t flags) void kasan_alloc_pages(struct page *page, unsigned int order, gfp_t flags)
......
...@@ -42,7 +42,7 @@ void __init kasan_init_sw_tags(void) ...@@ -42,7 +42,7 @@ void __init kasan_init_sw_tags(void)
for_each_possible_cpu(cpu) for_each_possible_cpu(cpu)
per_cpu(prng_state, cpu) = (u32)get_cycles(); per_cpu(prng_state, cpu) = (u32)get_cycles();
pr_info("KernelAddressSanitizer initialized\n"); pr_info("KernelAddressSanitizer initialized (sw-tags)\n");
} }
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment