[Devel] [PATCH COMMIT] diff-smp-nmi-show-regs-fixes

xemul at sw.ru xemul at sw.ru
Wed Apr 5 03:32:15 PDT 2006


Added to 026test008

Patch from OpenVZ team <devel at openvz.org>
Fix of previous patch for voyager.

Cc: Adrian Bunk <bunk at stusta.de>
Signed-off-by: Kirill Korotaev <dev at sw.ru>
Signed-off-by: Pavel Emelianov <xemul at sw.ru>
Signed-off-by: Andrew Morton <akpm at osdl.org>

-------------- next part --------------
diff -puN arch/i386/kernel/nmi.c~nmi-lockup-and-altsysrq-p-dumping-calltraces-on-_all_-cpus-fixes arch/i386/kernel/nmi.c
--- devel/arch/i386/kernel/nmi.c~nmi-lockup-and-altsysrq-p-dumping-calltraces-on-_all_-cpus-fixes	2006-03-18 01:12:53.000000000 -0800
+++ devel-akpm/arch/i386/kernel/nmi.c	2006-03-18 01:12:53.000000000 -0800
@@ -523,10 +523,10 @@ void touch_nmi_watchdog (void)
 
 extern void die_nmi(struct pt_regs *, const char *msg);
 
-static spinlock_t show_regs_lock = SPIN_LOCK_UNLOCKED;
-
 void smp_show_regs(struct pt_regs *regs, void *info)
 {
+	static DEFINE_SPINLOCK(show_regs_lock);
+
 	if (regs == NULL)
 		return;
 
@@ -538,7 +538,7 @@ void smp_show_regs(struct pt_regs *regs,
 	bust_spinlocks(0);
 }
 
-void nmi_watchdog_tick (struct pt_regs * regs)
+void nmi_watchdog_tick(struct pt_regs *regs)
 {
 
 	/*
diff -puN arch/i386/kernel/traps.c~nmi-lockup-and-altsysrq-p-dumping-calltraces-on-_all_-cpus-fixes arch/i386/kernel/traps.c
--- devel/arch/i386/kernel/traps.c~nmi-lockup-and-altsysrq-p-dumping-calltraces-on-_all_-cpus-fixes	2006-03-18 01:12:53.000000000 -0800
+++ devel-akpm/arch/i386/kernel/traps.c	2006-03-18 01:13:36.000000000 -0800
@@ -671,12 +671,27 @@ static void unknown_nmi_error(unsigned c
 	printk("Do you have a strange power saving mode enabled?\n");
 }

-static DEFINE_SPINLOCK(nmi_print_lock);
+/*
+ * Voyager doesn't implement these
+ */
+void __attribute__((weak)) smp_show_regs(struct pt_regs *regs, void *info)
+{
+}
+
+#ifdef CONFIG_SMP
+int __attribute__((weak))
+smp_nmi_call_function(smp_nmi_function func, void *info, int wait)
+{
+	return 0;
+}
+#endif
 
 void die_nmi (struct pt_regs *regs, const char *msg)
 {
+	static DEFINE_SPINLOCK(nmi_print_lock);
+
 	if (notify_die(DIE_NMIWATCHDOG, msg, regs, 0, 0, SIGINT) ==
-	    NOTIFY_STOP)
+			NOTIFY_STOP)
 		return;
 
 	spin_lock(&nmi_print_lock);


More information about the Devel mailing list