LSM: SafeSetID: refactor safesetid_security_capable()
[linux-2.6-microblaze.git] / init / main.c
index 66a196c..ff5803b 100644 (file)
@@ -520,6 +520,29 @@ static inline void initcall_debug_enable(void)
 }
 #endif
 
+/* Report memory auto-initialization states for this boot. */
+static void __init report_meminit(void)
+{
+       const char *stack;
+
+       if (IS_ENABLED(CONFIG_INIT_STACK_ALL))
+               stack = "all";
+       else if (IS_ENABLED(CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL))
+               stack = "byref_all";
+       else if (IS_ENABLED(CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF))
+               stack = "byref";
+       else if (IS_ENABLED(CONFIG_GCC_PLUGIN_STRUCTLEAK_USER))
+               stack = "__user";
+       else
+               stack = "off";
+
+       pr_info("mem auto-init: stack:%s, heap alloc:%s, heap free:%s\n",
+               stack, want_init_on_alloc(GFP_KERNEL) ? "on" : "off",
+               want_init_on_free() ? "on" : "off");
+       if (want_init_on_free())
+               pr_info("mem auto-init: clearing system memory may take some time...\n");
+}
+
 /*
  * Set up kernel memory allocators
  */
@@ -530,6 +553,7 @@ static void __init mm_init(void)
         * bigger than MAX_ORDER unless SPARSEMEM.
         */
        page_ext_init_flatmem();
+       report_meminit();
        mem_init();
        kmem_cache_init();
        pgtable_init();