Make touch_nmi_watchdog fall back to touch_softlockup_watchdog
PATCH 1/1 Make touch_nmi_watchdog fall back to touch_softlockup_watchdog
Some architectures define their own touch_nmi_watchdog and these all include a call to touch_softlockup_watchdog. Change all architectures so touch_nmi_watchdog includes a call to touch_softlockup_watchdog, to get a consistent soft watchdog state.
Also take the opportunity to kill ARCH_HAS_NMI_WATCHDOG.
Signed-off-by Keith Owens <[email protected]>
--- include/asm-i386/irq.h | 2 +- include/asm-x86_64/irq.h | 2 +- include/linux/nmi.h | 8 +++++--- 3 files changed, 7 insertions(+), 5 deletions(-)
include/asm-i386/irq.h +1 -1
@@ -21,7 +21,7 @@ static __inline__ int irq_canonicalize(i }#ifdef CONFIG_X86_LOCAL_APIC -# define ARCH_HAS_NMI_WATCHDOG /* See include/linux/nmi.h */ +# define touch_nmi_watchdog touch_nmi_watchdog#endif #ifdef CONFIG_4KSTACKS
include/asm-x86_64/irq.h +1 -1
@@ -45,7 +45,7 @@ static __inline__ int irq_canonicalize(i }#ifdef CONFIG_X86_LOCAL_APIC -#define ARCH_HAS_NMI_WATCHDOG /* See include/linux/nmi.h */ +# define touch_nmi_watchdog touch_nmi_watchdog#endif #ifdef CONFIG_HOTPLUG_CPU
include/linux/nmi.h +5 -3
@@ -11,12 +11,14 @@* * If the architecture supports the NMI watchdog, touch_nmi_watchdog() * may be used to reset the timeout - for code which intentionally -* disables interrupts for a long time. This call is stateless. +* disables interrupts for a long time. This call is stateless. For other +* architectures, fall back to touch_softlockup_watchdog, which may itself be a +* no-op. */ -#ifdef ARCH_HAS_NMI_WATCHDOG +#ifdef touch_nmi_watchdogextern void touch_nmi_watchdog (void );#else -# define touch_nmi_watchdog () do { } while(0) +# define touch_nmi_watchdog () touch_softlockup_watchdog()#endif #endif