X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=init%2Fmain.c;h=8651a720a092c4ade7e530c01b57b040c3e52539;hb=a1073406a124c1d3b33a0f06bfb8078a9ddd1985;hp=fc73e1cd86147dc56762ba5ee1e936c34c60bba7;hpb=9a11b49a805665e13a56aa067afaf81d43ec1514;p=~andy%2Flinux diff --git a/init/main.c b/init/main.c index fc73e1cd861..8651a720a09 100644 --- a/init/main.c +++ b/init/main.c @@ -41,6 +41,8 @@ #include #include #include +#include +#include #include #include #include @@ -48,6 +50,7 @@ #include #include #include +#include #include #include @@ -457,6 +460,16 @@ asmlinkage void __init start_kernel(void) smp_setup_processor_id(); + /* + * Need to run as early as possible, to initialize the + * lockdep hash: + */ + lockdep_init(); + + local_irq_disable(); + early_boot_irqs_off(); + early_init_irq_lock_class(); + /* * Interrupts are still disabled. Do necessary setups, then * enable them @@ -502,6 +515,7 @@ asmlinkage void __init start_kernel(void) profile_init(); if (!irqs_disabled()) printk("start_kernel(): bug: interrupts were enabled early\n"); + early_boot_irqs_on(); local_irq_enable(); /* @@ -512,6 +526,9 @@ asmlinkage void __init start_kernel(void) console_init(); if (panic_later) panic(panic_later, panic_param); + + lockdep_info(); + /* * Need to run this when irqs are enabled, because it wants * to self-test [hard/soft]-irqs on/off lock inversion bugs @@ -559,6 +576,8 @@ asmlinkage void __init start_kernel(void) proc_root_init(); #endif cpuset_init(); + taskstats_init_early(); + delayacct_init(); check_bugs();