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);