aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char
diff options
context:
space:
mode:
authorHidehiro Kawai <hidehiro.kawai.ez@hitachi.com>2016-03-22 17:27:21 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-03-22 18:36:02 -0400
commit73cbf4a1ddfab247f9018550637c28a7d8dd9108 (patch)
treeb99eac39cebcc21de2a2f1b98514a80fc6fafb88 /drivers/char
parentebc41f20d77f6ad91f1f2d2af5147dc9bb6b5eea (diff)
ipmi/watchdog: use nmi_panic() when kernel panics in NMI handler
Commit 1717f2096b54 ("panic, x86: Fix re-entrance problem due to panic on NMI") introduced nmi_panic() which prevents concurrent and recursive execution of panic(). It also saves registers for the crash dump on x86 by later commit 58c5661f2144 ("panic, x86: Allow CPUs to save registers even if looping in NMI context"). ipmi_watchdog driver can call panic() from NMI handler, so replace it with nmi_panic(). Signed-off-by: Hidehiro Kawai <hidehiro.kawai.ez@hitachi.com> Acked-by: Corey Minyard <cminyard@mvista.com> Acked-by: Guenter Roeck <linux@roeck-us.net> Reviewed-by: Michal Hocko <mhocko@suse.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/char')
-rw-r--r--drivers/char/ipmi/ipmi_watchdog.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/char/ipmi/ipmi_watchdog.c b/drivers/char/ipmi/ipmi_watchdog.c
index 096f0cef4da1..4facc7517a6a 100644
--- a/drivers/char/ipmi/ipmi_watchdog.c
+++ b/drivers/char/ipmi/ipmi_watchdog.c
@@ -1140,7 +1140,7 @@ ipmi_nmi(unsigned int val, struct pt_regs *regs)
1140 the timer. So do so. */ 1140 the timer. So do so. */
1141 pretimeout_since_last_heartbeat = 1; 1141 pretimeout_since_last_heartbeat = 1;
1142 if (atomic_inc_and_test(&preop_panic_excl)) 1142 if (atomic_inc_and_test(&preop_panic_excl))
1143 panic(PFX "pre-timeout"); 1143 nmi_panic(regs, PFX "pre-timeout");
1144 } 1144 }
1145 1145
1146 return NMI_HANDLED; 1146 return NMI_HANDLED;