diff options
| -rw-r--r-- | kernel/watchdog.c | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/kernel/watchdog.c b/kernel/watchdog.c index d7ebdf4cea98..d9961ea1c3f4 100644 --- a/kernel/watchdog.c +++ b/kernel/watchdog.c | |||
| @@ -27,7 +27,7 @@ | |||
| 27 | #include <asm/irq_regs.h> | 27 | #include <asm/irq_regs.h> |
| 28 | #include <linux/perf_event.h> | 28 | #include <linux/perf_event.h> |
| 29 | 29 | ||
| 30 | int watchdog_enabled; | 30 | int watchdog_enabled = 1; |
| 31 | int __read_mostly softlockup_thresh = 60; | 31 | int __read_mostly softlockup_thresh = 60; |
| 32 | 32 | ||
| 33 | static DEFINE_PER_CPU(unsigned long, watchdog_touch_ts); | 33 | static DEFINE_PER_CPU(unsigned long, watchdog_touch_ts); |
| @@ -43,9 +43,6 @@ static DEFINE_PER_CPU(unsigned long, hrtimer_interrupts_saved); | |||
| 43 | static DEFINE_PER_CPU(struct perf_event *, watchdog_ev); | 43 | static DEFINE_PER_CPU(struct perf_event *, watchdog_ev); |
| 44 | #endif | 44 | #endif |
| 45 | 45 | ||
| 46 | static int no_watchdog; | ||
| 47 | |||
| 48 | |||
| 49 | /* boot commands */ | 46 | /* boot commands */ |
| 50 | /* | 47 | /* |
| 51 | * Should we panic when a soft-lockup or hard-lockup occurs: | 48 | * Should we panic when a soft-lockup or hard-lockup occurs: |
| @@ -58,7 +55,7 @@ static int __init hardlockup_panic_setup(char *str) | |||
| 58 | if (!strncmp(str, "panic", 5)) | 55 | if (!strncmp(str, "panic", 5)) |
| 59 | hardlockup_panic = 1; | 56 | hardlockup_panic = 1; |
| 60 | else if (!strncmp(str, "0", 1)) | 57 | else if (!strncmp(str, "0", 1)) |
| 61 | no_watchdog = 1; | 58 | watchdog_enabled = 0; |
| 62 | return 1; | 59 | return 1; |
| 63 | } | 60 | } |
| 64 | __setup("nmi_watchdog=", hardlockup_panic_setup); | 61 | __setup("nmi_watchdog=", hardlockup_panic_setup); |
| @@ -77,7 +74,7 @@ __setup("softlockup_panic=", softlockup_panic_setup); | |||
| 77 | 74 | ||
| 78 | static int __init nowatchdog_setup(char *str) | 75 | static int __init nowatchdog_setup(char *str) |
| 79 | { | 76 | { |
| 80 | no_watchdog = 1; | 77 | watchdog_enabled = 0; |
| 81 | return 1; | 78 | return 1; |
| 82 | } | 79 | } |
| 83 | __setup("nowatchdog", nowatchdog_setup); | 80 | __setup("nowatchdog", nowatchdog_setup); |
| @@ -85,7 +82,7 @@ __setup("nowatchdog", nowatchdog_setup); | |||
| 85 | /* deprecated */ | 82 | /* deprecated */ |
| 86 | static int __init nosoftlockup_setup(char *str) | 83 | static int __init nosoftlockup_setup(char *str) |
| 87 | { | 84 | { |
| 88 | no_watchdog = 1; | 85 | watchdog_enabled = 0; |
| 89 | return 1; | 86 | return 1; |
| 90 | } | 87 | } |
| 91 | __setup("nosoftlockup", nosoftlockup_setup); | 88 | __setup("nosoftlockup", nosoftlockup_setup); |
| @@ -476,9 +473,6 @@ static void watchdog_disable_all_cpus(void) | |||
| 476 | { | 473 | { |
| 477 | int cpu; | 474 | int cpu; |
| 478 | 475 | ||
| 479 | if (no_watchdog) | ||
| 480 | return; | ||
| 481 | |||
| 482 | for_each_online_cpu(cpu) | 476 | for_each_online_cpu(cpu) |
| 483 | watchdog_disable(cpu); | 477 | watchdog_disable(cpu); |
| 484 | 478 | ||
| @@ -530,7 +524,8 @@ cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu) | |||
| 530 | break; | 524 | break; |
| 531 | case CPU_ONLINE: | 525 | case CPU_ONLINE: |
| 532 | case CPU_ONLINE_FROZEN: | 526 | case CPU_ONLINE_FROZEN: |
| 533 | err = watchdog_enable(hotcpu); | 527 | if (watchdog_enabled) |
| 528 | err = watchdog_enable(hotcpu); | ||
| 534 | break; | 529 | break; |
| 535 | #ifdef CONFIG_HOTPLUG_CPU | 530 | #ifdef CONFIG_HOTPLUG_CPU |
| 536 | case CPU_UP_CANCELED: | 531 | case CPU_UP_CANCELED: |
| @@ -555,9 +550,6 @@ void __init lockup_detector_init(void) | |||
| 555 | void *cpu = (void *)(long)smp_processor_id(); | 550 | void *cpu = (void *)(long)smp_processor_id(); |
| 556 | int err; | 551 | int err; |
| 557 | 552 | ||
| 558 | if (no_watchdog) | ||
| 559 | return; | ||
| 560 | |||
| 561 | err = cpu_callback(&cpu_nfb, CPU_UP_PREPARE, cpu); | 553 | err = cpu_callback(&cpu_nfb, CPU_UP_PREPARE, cpu); |
| 562 | WARN_ON(notifier_to_errno(err)); | 554 | WARN_ON(notifier_to_errno(err)); |
| 563 | 555 | ||
