]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - init/main.c
Merge branch 'pci/resource' into next
[mirror_ubuntu-bionic-kernel.git] / init / main.c
index 6ced14a3df12a8ae55b3c16bd03525de6a7c20ea..eae2f15657c62c31f66353f4bd3c4af1e03451cf 100644 (file)
 #define DEBUG          /* Enable initcall_debug */
 
 #include <linux/types.h>
+#include <linux/extable.h>
 #include <linux/module.h>
 #include <linux/proc_fs.h>
+#include <linux/binfmts.h>
 #include <linux/kernel.h>
 #include <linux/syscalls.h>
 #include <linux/stackprotector.h>
@@ -26,6 +28,7 @@
 #include <linux/bootmem.h>
 #include <linux/acpi.h>
 #include <linux/tty.h>
+#include <linux/nmi.h>
 #include <linux/percpu.h>
 #include <linux/kmod.h>
 #include <linux/vmalloc.h>
@@ -60,6 +63,7 @@
 #include <linux/device.h>
 #include <linux/kthread.h>
 #include <linux/sched.h>
+#include <linux/sched/init.h>
 #include <linux/signal.h>
 #include <linux/idr.h>
 #include <linux/kgdb.h>
 #include <linux/shmem_fs.h>
 #include <linux/slab.h>
 #include <linux/perf_event.h>
-#include <linux/file.h>
 #include <linux/ptrace.h>
 #include <linux/blkdev.h>
 #include <linux/elevator.h>
 #include <linux/sched_clock.h>
+#include <linux/sched/task.h>
+#include <linux/sched/task_stack.h>
 #include <linux/context_tracking.h>
 #include <linux/random.h>
 #include <linux/list.h>
@@ -82,6 +87,7 @@
 #include <linux/proc_ns.h>
 #include <linux/io.h>
 #include <linux/cache.h>
+#include <linux/rodata_test.h>
 
 #include <asm/io.h>
 #include <asm/bugs.h>
@@ -553,7 +559,7 @@ asmlinkage __visible void __init start_kernel(void)
        if (WARN(!irqs_disabled(),
                 "Interrupts were enabled *very* early, fixing it\n"))
                local_irq_disable();
-       idr_init_cache();
+       radix_tree_init();
 
        /*
         * Allow workqueue creation and work item queueing/cancelling
@@ -568,7 +574,6 @@ asmlinkage __visible void __init start_kernel(void)
        trace_init();
 
        context_tracking_init();
-       radix_tree_init();
        /* init some links before init_ISA_irqs() */
        early_irq_init();
        init_IRQ();
@@ -580,7 +585,7 @@ asmlinkage __visible void __init start_kernel(void)
        timekeeping_init();
        time_init();
        sched_clock_postinit();
-       printk_nmi_init();
+       printk_safe_init();
        perf_event_init();
        profile_init();
        call_function_init();
@@ -923,7 +928,7 @@ static int try_to_run_init_process(const char *init_filename)
 
 static noinline void __init kernel_init_freeable(void);
 
-#if defined(CONFIG_DEBUG_RODATA) || defined(CONFIG_DEBUG_SET_MODULE_RONX)
+#if defined(CONFIG_STRICT_KERNEL_RWX) || defined(CONFIG_STRICT_MODULE_RWX)
 bool rodata_enabled __ro_after_init = true;
 static int __init set_debug_rodata(char *str)
 {
@@ -932,12 +937,13 @@ static int __init set_debug_rodata(char *str)
 __setup("rodata=", set_debug_rodata);
 #endif
 
-#ifdef CONFIG_DEBUG_RODATA
+#ifdef CONFIG_STRICT_KERNEL_RWX
 static void mark_readonly(void)
 {
-       if (rodata_enabled)
+       if (rodata_enabled) {
                mark_rodata_ro();
-       else
+               rodata_test();
+       } else
                pr_info("Kernel memory protection disabled.\n");
 }
 #else
@@ -959,8 +965,6 @@ static int __ref kernel_init(void *unused)
        system_state = SYSTEM_RUNNING;
        numa_default_policy();
 
-       flush_delayed_fput();
-
        rcu_end_inkernel_boot();
 
        if (ramdisk_execute_command) {