diff options
author | David S. Miller <davem@davemloft.net> | 2009-09-10 05:56:16 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-09-10 05:56:16 -0700 |
commit | 2d0740c4562493b60f59ca9b0330a2d5e01d43ec (patch) | |
tree | b971b0d0f2f9353561178b97ebe99045dca4e2a3 /arch/sparc | |
parent | 76c36d016a3f958d6231dcdef54a132614c3b578 (diff) | |
download | lwn-2d0740c4562493b60f59ca9b0330a2d5e01d43ec.tar.gz lwn-2d0740c4562493b60f59ca9b0330a2d5e01d43ec.zip |
sparc64: Use nmi_enter() and nmi_exit(), as needed.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc')
-rw-r--r-- | arch/sparc/kernel/nmi.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/sparc/kernel/nmi.c b/arch/sparc/kernel/nmi.c index 47a465fe3c38..7de19dd30f40 100644 --- a/arch/sparc/kernel/nmi.c +++ b/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) |