[PATCH] kernel/watchdog: use nmi registers snapshot in hardlockup handler

From: Konstantin Khlebnikov
Date: Tue Jul 05 2016 - 07:40:33 EST


NMI handler doesn't call set_irq_regs(), so get_irq_regs() returns NULL or
stale snapshot from beginning of IRQ interrupted by NMI. Registers from
argument are always here and points to interrupted instruction and state.

Signed-off-by: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxxxxxx>
Cc: Jiri Kosina <jkosina@xxxxxxx>
---
kernel/watchdog.c | 1 -
1 file changed, 1 deletion(-)

diff --git a/kernel/watchdog.c b/kernel/watchdog.c
index 9acb29f280ec..6d1020c03d41 100644
--- a/kernel/watchdog.c
+++ b/kernel/watchdog.c
@@ -344,7 +344,6 @@ static void watchdog_overflow_callback(struct perf_event *event,
*/
if (is_hardlockup()) {
int this_cpu = smp_processor_id();
- struct pt_regs *regs = get_irq_regs();

/* only print hardlockups once */
if (__this_cpu_read(hard_watchdog_warn) == true)