diff options
Diffstat (limited to 'init/main.c')
-rw-r--r-- | init/main.c | 39 |
1 files changed, 18 insertions, 21 deletions
diff --git a/init/main.c b/init/main.c index b0c705515089..54565bf57beb 100644 --- a/init/main.c +++ b/init/main.c @@ -51,7 +51,7 @@ #include <linux/mempolicy.h> #include <linux/key.h> #include <linux/buffer_head.h> -#include <linux/page_cgroup.h> +#include <linux/page_ext.h> #include <linux/debug_locks.h> #include <linux/debugobjects.h> #include <linux/lockdep.h> @@ -78,6 +78,8 @@ #include <linux/context_tracking.h> #include <linux/random.h> #include <linux/list.h> +#include <linux/integrity.h> +#include <linux/proc_ns.h> #include <asm/io.h> #include <asm/bugs.h> @@ -85,10 +87,6 @@ #include <asm/sections.h> #include <asm/cacheflush.h> -#ifdef CONFIG_X86_LOCAL_APIC -#include <asm/smp.h> -#endif - static int kernel_init(void *); extern void init_IRQ(void); @@ -349,15 +347,6 @@ __setup("rdinit=", rdinit_setup); #ifndef CONFIG_SMP static const unsigned int setup_max_cpus = NR_CPUS; -#ifdef CONFIG_X86_LOCAL_APIC -static void __init smp_init(void) -{ - APIC_init_uniprocessor(); -} -#else -#define smp_init() do { } while (0) -#endif - static inline void setup_nr_cpu_ids(void) { } static inline void smp_prepare_cpus(unsigned int maxcpus) { } #endif @@ -486,10 +475,10 @@ void __init __weak thread_info_cache_init(void) static void __init mm_init(void) { /* - * page_cgroup requires contiguous pages, + * page_ext requires contiguous pages, * bigger than MAX_ORDER unless SPARSEMEM. */ - page_cgroup_init_flatmem(); + page_ext_init_flatmem(); mem_init(); kmem_cache_init(); percpu_init_late(); @@ -577,6 +566,10 @@ asmlinkage __visible void __init start_kernel(void) local_irq_disable(); idr_init_cache(); rcu_init(); + + /* trace_printk() and trace points may be used after this */ + trace_init(); + context_tracking_init(); radix_tree_init(); /* init some links before init_ISA_irqs() */ @@ -627,7 +620,7 @@ asmlinkage __visible void __init start_kernel(void) initrd_start = 0; } #endif - page_cgroup_init(); + page_ext_init(); debug_objects_mem_init(); kmemleak_init(); setup_per_cpu_pageset(); @@ -660,8 +653,9 @@ asmlinkage __visible void __init start_kernel(void) /* rootfs populating might need page-writeback */ page_writeback_init(); proc_root_init(); - cgroup_init(); + nsfs_init(); cpuset_init(); + cgroup_init(); taskstats_init_early(); delayacct_init(); @@ -959,8 +953,8 @@ static int __ref kernel_init(void *unused) ret = run_init_process(execute_command); if (!ret) return 0; - pr_err("Failed to execute %s (error %d). Attempting defaults...\n", - execute_command, ret); + panic("Requested init %s failed (error %d).", + execute_command, ret); } if (!try_to_run_init_process("/sbin/init") || !try_to_run_init_process("/etc/init") || @@ -1026,8 +1020,11 @@ static noinline void __init kernel_init_freeable(void) * Ok, we have completed the initial bootup, and * we're essentially up and running. Get rid of the * initmem segments and start the user-mode stuff.. + * + * rootfs is available now, try loading the public keys + * and default modules */ - /* rootfs is available now, try loading default modules */ + integrity_load_keys(); load_default_modules(); } |