diff options
author | David S. Miller <davem@davemloft.net> | 2009-09-10 08:56:16 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-09-10 08:56:16 -0400 |
commit | 2d0740c4562493b60f59ca9b0330a2d5e01d43ec (patch) | |
tree | b971b0d0f2f9353561178b97ebe99045dca4e2a3 /arch/sparc | |
parent | 76c36d016a3f958d6231dcdef54a132614c3b578 (diff) |
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) | |||
84 | if (do_panic || panic_on_oops) | 84 | if (do_panic || panic_on_oops) |
85 | panic("Non maskable interrupt"); | 85 | panic("Non maskable interrupt"); |
86 | 86 | ||
87 | nmi_exit(); | ||
87 | local_irq_enable(); | 88 | local_irq_enable(); |
88 | do_exit(SIGBUS); | 89 | do_exit(SIGBUS); |
89 | } | 90 | } |
@@ -98,6 +99,8 @@ notrace __kprobes void perfctr_irq(int irq, struct pt_regs *regs) | |||
98 | 99 | ||
99 | local_cpu_data().__nmi_count++; | 100 | local_cpu_data().__nmi_count++; |
100 | 101 | ||
102 | nmi_enter(); | ||
103 | |||
101 | if (notify_die(DIE_NMI, "nmi", regs, 0, | 104 | if (notify_die(DIE_NMI, "nmi", regs, 0, |
102 | pt_regs_trap_type(regs), SIGINT) == NOTIFY_STOP) | 105 | pt_regs_trap_type(regs), SIGINT) == NOTIFY_STOP) |
103 | touched = 1; | 106 | touched = 1; |
@@ -120,6 +123,8 @@ notrace __kprobes void perfctr_irq(int irq, struct pt_regs *regs) | |||
120 | write_pic(picl_value(nmi_hz)); | 123 | write_pic(picl_value(nmi_hz)); |
121 | pcr_ops->write(pcr_enable); | 124 | pcr_ops->write(pcr_enable); |
122 | } | 125 | } |
126 | |||
127 | nmi_exit(); | ||
123 | } | 128 | } |
124 | 129 | ||
125 | static inline unsigned int get_nmi_count(int cpu) | 130 | static inline unsigned int get_nmi_count(int cpu) |