Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
[cascardo/linux.git] / init / main.c
index b0c7055..54565bf 100644 (file)
@@ -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>
 #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();
 }