diff options
Diffstat (limited to 'arch/sparc/kernel/nmi.c')
| -rw-r--r-- | arch/sparc/kernel/nmi.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/arch/sparc/kernel/nmi.c b/arch/sparc/kernel/nmi.c index eb1c1f010a47..6479256fd5a4 100644 --- a/arch/sparc/kernel/nmi.c +++ b/arch/sparc/kernel/nmi.c | |||
| @@ -22,7 +22,6 @@ | |||
| 22 | #include <asm/perf_event.h> | 22 | #include <asm/perf_event.h> |
| 23 | #include <asm/ptrace.h> | 23 | #include <asm/ptrace.h> |
| 24 | #include <asm/pcr.h> | 24 | #include <asm/pcr.h> |
| 25 | #include <asm/perfctr.h> | ||
| 26 | 25 | ||
| 27 | #include "kstack.h" | 26 | #include "kstack.h" |
| 28 | 27 | ||
| @@ -109,7 +108,7 @@ notrace __kprobes void perfctr_irq(int irq, struct pt_regs *regs) | |||
| 109 | pt_regs_trap_type(regs), SIGINT) == NOTIFY_STOP) | 108 | pt_regs_trap_type(regs), SIGINT) == NOTIFY_STOP) |
| 110 | touched = 1; | 109 | touched = 1; |
| 111 | else | 110 | else |
| 112 | pcr_ops->write(PCR_PIC_PRIV); | 111 | pcr_ops->write_pcr(0, pcr_ops->pcr_nmi_disable); |
| 113 | 112 | ||
| 114 | sum = local_cpu_data().irq0_irqs; | 113 | sum = local_cpu_data().irq0_irqs; |
| 115 | if (__get_cpu_var(nmi_touch)) { | 114 | if (__get_cpu_var(nmi_touch)) { |
| @@ -126,8 +125,8 @@ notrace __kprobes void perfctr_irq(int irq, struct pt_regs *regs) | |||
| 126 | __this_cpu_write(alert_counter, 0); | 125 | __this_cpu_write(alert_counter, 0); |
| 127 | } | 126 | } |
| 128 | if (__get_cpu_var(wd_enabled)) { | 127 | if (__get_cpu_var(wd_enabled)) { |
| 129 | write_pic(picl_value(nmi_hz)); | 128 | pcr_ops->write_pic(0, pcr_ops->nmi_picl_value(nmi_hz)); |
| 130 | pcr_ops->write(pcr_enable); | 129 | pcr_ops->write_pcr(0, pcr_ops->pcr_nmi_enable); |
| 131 | } | 130 | } |
| 132 | 131 | ||
| 133 | restore_hardirq_stack(orig_sp); | 132 | restore_hardirq_stack(orig_sp); |
| @@ -166,7 +165,7 @@ static void report_broken_nmi(int cpu, int *prev_nmi_count) | |||
| 166 | 165 | ||
| 167 | void stop_nmi_watchdog(void *unused) | 166 | void stop_nmi_watchdog(void *unused) |
| 168 | { | 167 | { |
| 169 | pcr_ops->write(PCR_PIC_PRIV); | 168 | pcr_ops->write_pcr(0, pcr_ops->pcr_nmi_disable); |
| 170 | __get_cpu_var(wd_enabled) = 0; | 169 | __get_cpu_var(wd_enabled) = 0; |
| 171 | atomic_dec(&nmi_active); | 170 | atomic_dec(&nmi_active); |
| 172 | } | 171 | } |
| @@ -223,10 +222,10 @@ void start_nmi_watchdog(void *unused) | |||
| 223 | __get_cpu_var(wd_enabled) = 1; | 222 | __get_cpu_var(wd_enabled) = 1; |
| 224 | atomic_inc(&nmi_active); | 223 | atomic_inc(&nmi_active); |
| 225 | 224 | ||
| 226 | pcr_ops->write(PCR_PIC_PRIV); | 225 | pcr_ops->write_pcr(0, pcr_ops->pcr_nmi_disable); |
| 227 | write_pic(picl_value(nmi_hz)); | 226 | pcr_ops->write_pic(0, pcr_ops->nmi_picl_value(nmi_hz)); |
| 228 | 227 | ||
| 229 | pcr_ops->write(pcr_enable); | 228 | pcr_ops->write_pcr(0, pcr_ops->pcr_nmi_enable); |
| 230 | } | 229 | } |
| 231 | 230 | ||
| 232 | static void nmi_adjust_hz_one(void *unused) | 231 | static void nmi_adjust_hz_one(void *unused) |
| @@ -234,10 +233,10 @@ static void nmi_adjust_hz_one(void *unused) | |||
| 234 | if (!__get_cpu_var(wd_enabled)) | 233 | if (!__get_cpu_var(wd_enabled)) |
| 235 | return; | 234 | return; |
| 236 | 235 | ||
| 237 | pcr_ops->write(PCR_PIC_PRIV); | 236 | pcr_ops->write_pcr(0, pcr_ops->pcr_nmi_disable); |
| 238 | write_pic(picl_value(nmi_hz)); | 237 | pcr_ops->write_pic(0, pcr_ops->nmi_picl_value(nmi_hz)); |
| 239 | 238 | ||
| 240 | pcr_ops->write(pcr_enable); | 239 | pcr_ops->write_pcr(0, pcr_ops->pcr_nmi_enable); |
| 241 | } | 240 | } |
| 242 | 241 | ||
| 243 | void nmi_adjust_hz(unsigned int new_hz) | 242 | void nmi_adjust_hz(unsigned int new_hz) |
