diff options
Diffstat (limited to 'init/main.c')
| -rw-r--r-- | init/main.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/init/main.c b/init/main.c index fc73e1cd8614..fc473d4b56fd 100644 --- a/init/main.c +++ b/init/main.c | |||
| @@ -48,6 +48,7 @@ | |||
| 48 | #include <linux/unwind.h> | 48 | #include <linux/unwind.h> |
| 49 | #include <linux/buffer_head.h> | 49 | #include <linux/buffer_head.h> |
| 50 | #include <linux/debug_locks.h> | 50 | #include <linux/debug_locks.h> |
| 51 | #include <linux/lockdep.h> | ||
| 51 | 52 | ||
| 52 | #include <asm/io.h> | 53 | #include <asm/io.h> |
| 53 | #include <asm/bugs.h> | 54 | #include <asm/bugs.h> |
| @@ -457,6 +458,15 @@ asmlinkage void __init start_kernel(void) | |||
| 457 | 458 | ||
| 458 | smp_setup_processor_id(); | 459 | smp_setup_processor_id(); |
| 459 | 460 | ||
| 461 | /* | ||
| 462 | * Need to run as early as possible, to initialize the | ||
| 463 | * lockdep hash: | ||
| 464 | */ | ||
| 465 | lockdep_init(); | ||
| 466 | |||
| 467 | local_irq_disable(); | ||
| 468 | early_boot_irqs_off(); | ||
| 469 | |||
| 460 | /* | 470 | /* |
| 461 | * Interrupts are still disabled. Do necessary setups, then | 471 | * Interrupts are still disabled. Do necessary setups, then |
| 462 | * enable them | 472 | * enable them |
| @@ -502,6 +512,7 @@ asmlinkage void __init start_kernel(void) | |||
| 502 | profile_init(); | 512 | profile_init(); |
| 503 | if (!irqs_disabled()) | 513 | if (!irqs_disabled()) |
| 504 | printk("start_kernel(): bug: interrupts were enabled early\n"); | 514 | printk("start_kernel(): bug: interrupts were enabled early\n"); |
| 515 | early_boot_irqs_on(); | ||
| 505 | local_irq_enable(); | 516 | local_irq_enable(); |
| 506 | 517 | ||
| 507 | /* | 518 | /* |
| @@ -512,6 +523,9 @@ asmlinkage void __init start_kernel(void) | |||
| 512 | console_init(); | 523 | console_init(); |
| 513 | if (panic_later) | 524 | if (panic_later) |
| 514 | panic(panic_later, panic_param); | 525 | panic(panic_later, panic_param); |
| 526 | |||
| 527 | lockdep_info(); | ||
| 528 | |||
| 515 | /* | 529 | /* |
| 516 | * Need to run this when irqs are enabled, because it wants | 530 | * Need to run this when irqs are enabled, because it wants |
| 517 | * to self-test [hard/soft]-irqs on/off lock inversion bugs | 531 | * to self-test [hard/soft]-irqs on/off lock inversion bugs |
