Merge branch 'linus' into x86/nmi
authorIngo Molnar <mingo@elte.hu>
Mon, 16 Jun 2008 08:17:15 +0000 (10:17 +0200)
committerIngo Molnar <mingo@elte.hu>
Mon, 16 Jun 2008 08:17:15 +0000 (10:17 +0200)
Conflicts:

arch/x86/kernel/nmi_32.c

1  2 
arch/x86/kernel/traps_32.c

@@@ -544,6 -544,7 +544,7 @@@ vm86_trap
  #define DO_ERROR(trapnr, signr, str, name)                            \
  void do_##name(struct pt_regs *regs, long error_code)                 \
  {                                                                     \
+       trace_hardirqs_fixup();                                         \
        if (notify_die(DIE_TRAP, str, regs, error_code, trapnr, signr)  \
                                                == NOTIFY_STOP)         \
                return;                                                 \
@@@ -755,9 -756,9 +756,9 @@@ unknown_nmi_error(unsigned char reason
  
  static DEFINE_SPINLOCK(nmi_print_lock);
  
 -void notrace __kprobes die_nmi(struct pt_regs *regs, const char *msg)
 +void notrace __kprobes die_nmi(char *str, struct pt_regs *regs, int do_panic)
  {
 -      if (notify_die(DIE_NMIWATCHDOG, msg, regs, 0, 2, SIGINT) == NOTIFY_STOP)
 +      if (notify_die(DIE_NMIWATCHDOG, str, regs, 0, 2, SIGINT) == NOTIFY_STOP)
                return;
  
        spin_lock(&nmi_print_lock);
        * to get a message out:
        */
        bust_spinlocks(1);
 -      printk(KERN_EMERG "%s", msg);
 +      printk(KERN_EMERG "%s", str);
        printk(" on CPU%d, ip %08lx, registers:\n",
                smp_processor_id(), regs->ip);
        show_registers(regs);
 +      if (do_panic)
 +              panic("Non maskable interrupt");
        console_silent();
        spin_unlock(&nmi_print_lock);
        bust_spinlocks(0);