Quellcode durchsuchen

sparc64: Use nmi_enter() and nmi_exit(), as needed.

Signed-off-by: David S. Miller <davem@davemloft.net>
David S. Miller vor 15 Jahren
Ursprung
Commit
2d0740c456
1 geänderte Dateien mit 5 neuen und 0 gelöschten Zeilen
  1. 5 0
      arch/sparc/kernel/nmi.c

+ 5 - 0
arch/sparc/kernel/nmi.c

@@ -84,6 +84,7 @@ static void die_nmi(const char *str, struct pt_regs *regs, int do_panic)
 	if (do_panic || panic_on_oops)
 		panic("Non maskable interrupt");
 
+	nmi_exit();
 	local_irq_enable();
 	do_exit(SIGBUS);
 }
@@ -98,6 +99,8 @@ notrace __kprobes void perfctr_irq(int irq, struct pt_regs *regs)
 
 	local_cpu_data().__nmi_count++;
 
+	nmi_enter();
+
 	if (notify_die(DIE_NMI, "nmi", regs, 0,
 		       pt_regs_trap_type(regs), SIGINT) == NOTIFY_STOP)
 		touched = 1;
@@ -120,6 +123,8 @@ notrace __kprobes void perfctr_irq(int irq, struct pt_regs *regs)
 		write_pic(picl_value(nmi_hz));
 		pcr_ops->write(pcr_enable);
 	}
+
+	nmi_exit();
 }
 
 static inline unsigned int get_nmi_count(int cpu)