Hello Ralf, Ralf Baechle wrote on 2013-10-08: > On Tue, Oct 08, 2013 at 11:48:54AM +0000, thomas.langer@xxxxxxxxxx wrote: > >>> void __noreturn nmi_exception_handler(struct pt_regs *regs) >>> { >>> + char str[100]; >>> + >>> raw_notifier_call_chain(&nmi_chain, 0, regs); >>> bust_spinlocks(1); >>> - printk("NMI taken!!!!\n"); >>> - die("NMI", regs); >>> + snprintf(str, 100, "CPU%d NMI taken, CP0_EPC=%lx\n", >>> + smp_processor_id(), regs->cp0_epc); >>> + regs->cp0_epc = read_c0_errorepc(); >> >> If this is a YAMON specific fix, why is it done in a common file? > > The installation of an NMI handler is platform specific - this handler > however in all its simplicity is generic - or at least trying to. > > The NMI on MIPS is notoriously hard to use. The vectors is pointing to > the boot ROM so firmware first gets its grubby hands on a fresh NMI and > on most systems it'll do the firmware equivalent of a panic or reset > the system outright. If that's still working - it's about the worst > tested functionality of firmware ... I know, I am working on a chip which has working wrapper implemented in its bootrom: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/mips/lantiq/falcon/prom.c#n90 Therefore I was triggered by the keyword NMI ;-) So if this has nothing to do with YAMON and is some generic NMI specific fix: Acked-By: Thomas Langer <thomas.langer@xxxxxxxxxx> > > Ralf Best Regards, Thomas