[<prev] [next>] [day] [month] [year] [list]
Message-ID: <17651.1156911026@kao2.melbourne.sgi.com>
Date: Wed, 30 Aug 2006 14:10:26 +1000
From: Keith Owens <kaos@....com.au>
To: linux-kernel@...r.kernel.org
Subject: [patch 2.6.18-rc5] 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 <kaos@....com.au>
---
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(-)
Index: linux/include/asm-i386/irq.h
===================================================================
--- linux.orig/include/asm-i386/irq.h
+++ linux/include/asm-i386/irq.h
@@ -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
Index: linux/include/asm-x86_64/irq.h
===================================================================
--- linux.orig/include/asm-x86_64/irq.h
+++ linux/include/asm-x86_64/irq.h
@@ -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
Index: linux/include/linux/nmi.h
===================================================================
--- linux.orig/include/linux/nmi.h
+++ linux/include/linux/nmi.h
@@ -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_watchdog
extern void touch_nmi_watchdog(void);
#else
-# define touch_nmi_watchdog() do { } while(0)
+# define touch_nmi_watchdog() touch_softlockup_watchdog()
#endif
#endif
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists