[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