]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - init/main.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus
[linux-2.6-omap-h63xx.git] / init / main.c
index 61eb661593915cbe9a6e85a1481c3b5b149dcad7..b038fa142041eadc67369792aeeb97492c2819dd 100644 (file)
@@ -27,6 +27,7 @@
 #include <linux/gfp.h>
 #include <linux/percpu.h>
 #include <linux/kmod.h>
+#include <linux/vmalloc.h>
 #include <linux/kernel_stat.h>
 #include <linux/start_kernel.h>
 #include <linux/security.h>
@@ -51,6 +52,7 @@
 #include <linux/key.h>
 #include <linux/unwind.h>
 #include <linux/buffer_head.h>
+#include <linux/page_cgroup.h>
 #include <linux/debug_locks.h>
 #include <linux/debugobjects.h>
 #include <linux/lockdep.h>
@@ -643,8 +645,10 @@ asmlinkage void __init start_kernel(void)
                initrd_start = 0;
        }
 #endif
+       vmalloc_init();
        vfs_caches_init_early();
        cpuset_init_early();
+       page_cgroup_init();
        mem_init();
        enable_debug_pagealloc();
        cpu_hotplug_init();
@@ -695,13 +699,7 @@ asmlinkage void __init start_kernel(void)
 }
 
 static int initcall_debug;
-
-static int __init initcall_debug_setup(char *str)
-{
-       initcall_debug = 1;
-       return 1;
-}
-__setup("initcall_debug", initcall_debug_setup);
+core_param(initcall_debug, initcall_debug, bool, 0644);
 
 int do_one_initcall(initcall_t fn)
 {
@@ -712,7 +710,6 @@ int do_one_initcall(initcall_t fn)
 
        if (initcall_debug) {
                it.caller = task_pid_nr(current);
-               it.func = fn;
                printk("calling  %pF @ %i\n", fn, it.caller);
                it.calltime = ktime_get();
        }
@@ -722,10 +719,10 @@ int do_one_initcall(initcall_t fn)
        if (initcall_debug) {
                it.rettime = ktime_get();
                delta = ktime_sub(it.rettime, it.calltime);
-               it.duration = (unsigned long long) delta.tv64 >> 20;
-               printk("initcall %pF returned %d after %Ld msecs\n", fn,
+               it.duration = (unsigned long long) delta.tv64 >> 10;
+               printk("initcall %pF returned %d after %Ld usecs\n", fn,
                        it.result, it.duration);
-               trace_boot(&it);
+               trace_boot(&it, fn);
        }
 
        msgbuf[0] = 0;
@@ -772,8 +769,6 @@ static void __init do_initcalls(void)
 static void __init do_basic_setup(void)
 {
        rcu_init_sched(); /* needed by module_init stage. */
-       /* drivers will send hotplug events */
-       init_workqueues();
        usermodehelper_init();
        driver_init();
        init_irq_proc();
@@ -857,6 +852,8 @@ static int __init kernel_init(void * unused)
 
        cad_pid = task_pid(current);
 
+       init_workqueues();
+
        smp_prepare_cpus(setup_max_cpus);
 
        do_pre_smp_initcalls();
@@ -887,6 +884,7 @@ static int __init kernel_init(void * unused)
         * we're essentially up and running. Get rid of the
         * initmem segments and start the user-mode stuff..
         */
+       stop_boot_trace();
        init_post();
        return 0;
 }