diff options
Diffstat (limited to 'kernel/watchdog.c')
-rw-r--r-- | kernel/watchdog.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/kernel/watchdog.c b/kernel/watchdog.c index c812c4927cab..6e7b575ac33c 100644 --- a/kernel/watchdog.c +++ b/kernel/watchdog.c | |||
@@ -57,6 +57,8 @@ static int __init hardlockup_panic_setup(char *str) | |||
57 | { | 57 | { |
58 | if (!strncmp(str, "panic", 5)) | 58 | if (!strncmp(str, "panic", 5)) |
59 | hardlockup_panic = 1; | 59 | hardlockup_panic = 1; |
60 | else if (!strncmp(str, "0", 1)) | ||
61 | no_watchdog = 1; | ||
60 | return 1; | 62 | return 1; |
61 | } | 63 | } |
62 | __setup("nmi_watchdog=", hardlockup_panic_setup); | 64 | __setup("nmi_watchdog=", hardlockup_panic_setup); |
@@ -548,13 +550,13 @@ static struct notifier_block __cpuinitdata cpu_nfb = { | |||
548 | .notifier_call = cpu_callback | 550 | .notifier_call = cpu_callback |
549 | }; | 551 | }; |
550 | 552 | ||
551 | static int __init spawn_watchdog_task(void) | 553 | void __init lockup_detector_init(void) |
552 | { | 554 | { |
553 | void *cpu = (void *)(long)smp_processor_id(); | 555 | void *cpu = (void *)(long)smp_processor_id(); |
554 | int err; | 556 | int err; |
555 | 557 | ||
556 | if (no_watchdog) | 558 | if (no_watchdog) |
557 | return 0; | 559 | return; |
558 | 560 | ||
559 | err = cpu_callback(&cpu_nfb, CPU_UP_PREPARE, cpu); | 561 | err = cpu_callback(&cpu_nfb, CPU_UP_PREPARE, cpu); |
560 | WARN_ON(notifier_to_errno(err)); | 562 | WARN_ON(notifier_to_errno(err)); |
@@ -562,6 +564,5 @@ static int __init spawn_watchdog_task(void) | |||
562 | cpu_callback(&cpu_nfb, CPU_ONLINE, cpu); | 564 | cpu_callback(&cpu_nfb, CPU_ONLINE, cpu); |
563 | register_cpu_notifier(&cpu_nfb); | 565 | register_cpu_notifier(&cpu_nfb); |
564 | 566 | ||
565 | return 0; | 567 | return; |
566 | } | 568 | } |
567 | early_initcall(spawn_watchdog_task); | ||