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 <[email protected]> Cc: Jiri Kosina <[email protected]> --- 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)

