summaryrefslogtreecommitdiff
path: root/kernel/watchdog.c
diff options
context:
space:
mode:
authorStephen Rothwell <sfr@canb.auug.org.au>2013-02-14 15:35:28 +1100
committerStephen Rothwell <sfr@canb.auug.org.au>2013-02-14 15:35:28 +1100
commitf600c997a1e930c3be312fdc4d1a67979d89173e (patch)
tree352f5d35d672887a5552730cb71af9d3f068fe19 /kernel/watchdog.c
parent065957b017e290977dc5527ae4e21cff9d3fb5ec (diff)
parent0ef183f7f162a62662f6002b03bcf3ca2903c937 (diff)
Merge branch 'akpm/master'
Diffstat (limited to 'kernel/watchdog.c')
-rw-r--r--kernel/watchdog.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/kernel/watchdog.c b/kernel/watchdog.c
index 4a944676358e..7672bef6c88b 100644
--- a/kernel/watchdog.c
+++ b/kernel/watchdog.c
@@ -239,10 +239,12 @@ static void watchdog_overflow_callback(struct perf_event *event,
if (__this_cpu_read(hard_watchdog_warn) == true)
return;
- if (hardlockup_panic)
+ if (hardlockup_panic) {
+ trigger_all_cpu_backtrace();
panic("Watchdog detected hard LOCKUP on cpu %d", this_cpu);
- else
+ } else {
WARN(1, "Watchdog detected hard LOCKUP on cpu %d", this_cpu);
+ }
__this_cpu_write(hard_watchdog_warn, true);
return;
@@ -323,8 +325,10 @@ static enum hrtimer_restart watchdog_timer_fn(struct hrtimer *hrtimer)
else
dump_stack();
- if (softlockup_panic)
+ if (softlockup_panic) {
+ trigger_all_cpu_backtrace();
panic("softlockup: hung tasks");
+ }
__this_cpu_write(soft_watchdog_warn, true);
} else
__this_cpu_write(soft_watchdog_warn, false);