kasan_init_depth();
 #if defined(CONFIG_KASAN_GENERIC)
        /* CONFIG_KASAN_SW_TAGS also requires kasan_init_sw_tags(). */
-       pr_info("KernelAddressSanitizer initialized\n");
+       pr_info("KernelAddressSanitizer initialized (generic)\n");
 #endif
 }
 
 
 }
 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. */
 void kasan_init_hw_tags_cpu(void)
 {
                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)
 
        for_each_possible_cpu(cpu)
                per_cpu(prng_state, cpu) = (u32)get_cycles();
 
-       pr_info("KernelAddressSanitizer initialized\n");
+       pr_info("KernelAddressSanitizer initialized (sw-tags)\n");
 }
 
 /*