Merge tag 'thermal-6.4-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael...
[linux-block.git] / init / main.c
index c62f0c8811d773421113ebd0b5e5e939b0834db4..af50044deed567a688a2fb8d717fe11f3cbd26cb 100644 (file)
@@ -62,7 +62,6 @@
 #include <linux/rmap.h>
 #include <linux/mempolicy.h>
 #include <linux/key.h>
-#include <linux/page_ext.h>
 #include <linux/debug_locks.h>
 #include <linux/debugobjects.h>
 #include <linux/lockdep.h>
@@ -687,7 +686,7 @@ static void __init setup_command_line(char *command_line)
 
 static __initdata DECLARE_COMPLETION(kthreadd_done);
 
-noinline void __ref rest_init(void)
+noinline void __ref __noreturn rest_init(void)
 {
        struct task_struct *tsk;
        int pid;
@@ -807,69 +806,6 @@ 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_PATTERN))
-               stack = "all(pattern)";
-       else if (IS_ENABLED(CONFIG_INIT_STACK_ALL_ZERO))
-               stack = "all(zero)";
-       else if (IS_ENABLED(CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL))
-               stack = "byref_all(zero)";
-       else if (IS_ENABLED(CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF))
-               stack = "byref(zero)";
-       else if (IS_ENABLED(CONFIG_GCC_PLUGIN_STRUCTLEAK_USER))
-               stack = "__user(zero)";
-       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
- */
-static void __init mm_init(void)
-{
-       /*
-        * page_ext requires contiguous pages,
-        * bigger than MAX_ORDER unless SPARSEMEM.
-        */
-       page_ext_init_flatmem();
-       init_mem_debugging_and_hardening();
-       kfence_alloc_pool();
-       report_meminit();
-       kmsan_init_shadow();
-       stack_depot_early_init();
-       mem_init();
-       mem_init_print_info();
-       kmem_cache_init();
-       /*
-        * page_owner must be initialized after buddy is ready, and also after
-        * slab is ready so that stack_depot_init() works properly
-        */
-       page_ext_init_flatmem_late();
-       kmemleak_init();
-       pgtable_init();
-       debug_objects_mem_init();
-       vmalloc_init();
-       /* If no deferred init page_ext now, as vmap is fully initialized */
-       if (!deferred_struct_pages)
-               page_ext_init();
-       /* Should be run before the first non-init thread is created */
-       init_espfix_bsp();
-       /* Should be run after espfix64 is set up. */
-       pti_init();
-       kmsan_init_runtime();
-       mm_cache_init();
-}
-
 #ifdef CONFIG_RANDOMIZE_KSTACK_OFFSET
 DEFINE_STATIC_KEY_MAYBE_RO(CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT,
                           randomize_kstack_offset);
@@ -893,7 +829,7 @@ static int __init early_randomize_kstack_offset(char *buf)
 early_param("randomize_kstack_offset", early_randomize_kstack_offset);
 #endif
 
-void __init __weak arch_call_rest_init(void)
+void __init __weak __noreturn arch_call_rest_init(void)
 {
        rest_init();
 }
@@ -941,7 +877,7 @@ static void __init print_unknown_bootoptions(void)
        memblock_free(unknown_options, len);
 }
 
-asmlinkage __visible void __init __no_sanitize_address start_kernel(void)
+asmlinkage __visible void __init __no_sanitize_address __noreturn start_kernel(void)
 {
        char *command_line;
        char *after_dashes;
@@ -972,9 +908,6 @@ asmlinkage __visible void __init __no_sanitize_address start_kernel(void)
        smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */
        boot_cpu_hotplug_init();
 
-       build_all_zonelists(NULL);
-       page_alloc_init();
-
        pr_notice("Kernel command line: %s\n", saved_command_line);
        /* parameters may set static keys */
        jump_label_init();
@@ -996,13 +929,13 @@ asmlinkage __visible void __init __no_sanitize_address start_kernel(void)
 
        /*
         * These use large bootmem allocations and must precede
-        * kmem_cache_init()
+        * initalization of page allocator
         */
        setup_log_buf(0);
        vfs_caches_init_early();
        sort_main_extable();
        trap_init();
-       mm_init();
+       mm_core_init();
        poking_init();
        ftrace_init();
 
@@ -1634,9 +1567,6 @@ static noinline void __init kernel_init_freeable(void)
 
        padata_init();
        page_alloc_init_late();
-       /* Initialize page ext after all struct pages are initialized. */
-       if (deferred_struct_pages)
-               page_ext_init();
 
        do_basic_setup();