powerpc/watchdog: don't update the watchdog timestamp if a lockup is detected
authorNicholas Piggin <npiggin@gmail.com>
Sat, 5 May 2018 07:25:59 +0000 (17:25 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 10 May 2018 13:25:11 +0000 (23:25 +1000)
The watchdog heartbeat timestamp is updated when the local heartbeat
timer fires (or touch_nmi_watchdog() is called).

This is an interesting data point, so don't overwrite it when the
soft-NMI interrupt detects a hard lockup. That code came from a pre-
merge version to prevent hard lockup messages flood, but that's taken
care of with the stuck CPU logic now, so there is no reason to
update the heartbeat timestamp here.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kernel/watchdog.c

index 591f7c3..b2d3bdf 100644 (file)
@@ -245,8 +245,6 @@ void soft_nmi_interrupt(struct pt_regs *regs)
 
        tb = get_tb();
        if (tb - per_cpu(wd_timer_tb, cpu) >= wd_panic_timeout_tb) {
-               per_cpu(wd_timer_tb, cpu) = tb;
-
                wd_smp_lock(&flags);
                if (cpumask_test_cpu(cpu, &wd_smp_cpus_stuck)) {
                        wd_smp_unlock(&flags);