linux/arch/powerpc
Nicholas Piggin 5dad4ba68a powerpc/watchdog: Fix missed watchdog reset due to memory ordering race
It is possible for all CPUs to miss the pending cpumask becoming clear,
and then nobody resetting it, which will cause the lockup detector to
stop working. It will eventually expire, but watchdog_smp_panic will
avoid doing anything if the pending mask is clear and it will never be
reset.

Order the cpumask clear vs the subsequent test to close this race.

Add an extra check for an empty pending mask when the watchdog fires and
finds its bit still clear, to try to catch any other possible races or
bugs here and keep the watchdog working. The extra test in
arch_touch_nmi_watchdog is required to prevent the new warning from
firing off.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Reviewed-by: Laurent Dufour <ldufour@linux.ibm.com>
Debugged-by: Laurent Dufour <ldufour@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20211110025056.2084347-2-npiggin@gmail.com
2021-11-25 11:25:33 +11:00
..
boot powerpc updates for 5.16 2021-11-05 08:15:46 -07:00
configs powerpc/pseries: delete scanlog 2021-11-25 11:25:33 +11:00
crypto
include powerpc/rtas: rtas_busy_delay() improvements 2021-11-25 11:25:33 +11:00
kernel powerpc/watchdog: Fix missed watchdog reset due to memory ordering race 2021-11-25 11:25:33 +11:00
kexec powerpc/machdep: Remove stale functions from ppc_md structure 2021-10-22 15:22:05 +11:00
kvm KVM: PPC: Book3S HV P9: Remove subcore HMI handling 2021-11-24 21:09:03 +11:00
lib powerpc/code-patching: Improve verification of patchability 2021-11-25 11:25:32 +11:00
math-emu powerpc/64s: avoid reloading (H)SRR registers if they are still valid 2021-06-25 00:06:55 +10:00
mm powerpc/code-patching: Improve verification of patchability 2021-11-25 11:25:32 +11:00
net bpf ppc32: Access only if addr is kernel address 2021-11-25 11:25:32 +11:00
perf powerpc/64s: Implement PMU override command line option 2021-11-24 21:08:57 +11:00
platforms powerpc/pseries: delete scanlog 2021-11-25 11:25:33 +11:00
purgatory
sysdev powerpc/tsi108: make EXPORT_SYMBOL follow its function immediately 2021-11-25 11:25:32 +11:00
tools powerpc/head_check: Fix shellcheck errors 2021-08-17 22:52:02 +10:00
xmon powerpc/64s: guard optional TIDR SPR with CPU ftr test 2021-11-24 21:08:56 +11:00
Kbuild kbuild: use more subdir- for visiting subdirectories while cleaning 2021-10-24 13:49:46 +09:00
Kconfig powerpc/64s: Default to 64K pages for 64 bit book3s 2021-10-27 22:31:22 +11:00
Kconfig.debug powerpc/ptdump: Convert powerpc to GENERIC_PTDUMP 2021-08-25 13:35:48 +10:00
Makefile Kbuild updates for v5.16 2021-11-08 09:15:45 -08:00
Makefile.postlink