aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/oprofile/op_model_mipsxx.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/oprofile/op_model_mipsxx.c')
-rw-r--r--arch/mips/oprofile/op_model_mipsxx.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/mips/oprofile/op_model_mipsxx.c b/arch/mips/oprofile/op_model_mipsxx.c
index ca65469d7e30..da8cbb6899dc 100644
--- a/arch/mips/oprofile/op_model_mipsxx.c
+++ b/arch/mips/oprofile/op_model_mipsxx.c
@@ -31,6 +31,8 @@
31 31
32#define M_COUNTER_OVERFLOW (1UL << 31) 32#define M_COUNTER_OVERFLOW (1UL << 31)
33 33
34static int (*save_perf_irq)(void);
35
34#ifdef CONFIG_MIPS_MT_SMP 36#ifdef CONFIG_MIPS_MT_SMP
35static int cpu_has_mipsmt_pertccounters; 37static int cpu_has_mipsmt_pertccounters;
36#define WHAT (M_TC_EN_VPE | \ 38#define WHAT (M_TC_EN_VPE | \
@@ -369,6 +371,7 @@ static int __init mipsxx_init(void)
369 return -ENODEV; 371 return -ENODEV;
370 } 372 }
371 373
374 save_perf_irq = perf_irq;
372 perf_irq = mipsxx_perfcount_handler; 375 perf_irq = mipsxx_perfcount_handler;
373 376
374 return 0; 377 return 0;
@@ -381,7 +384,7 @@ static void mipsxx_exit(void)
381 counters = counters_per_cpu_to_total(counters); 384 counters = counters_per_cpu_to_total(counters);
382 on_each_cpu(reset_counters, (void *)counters, 0, 1); 385 on_each_cpu(reset_counters, (void *)counters, 0, 1);
383 386
384 perf_irq = null_perf_irq; 387 perf_irq = save_perf_irq;
385} 388}
386 389
387struct op_mips_model op_model_mipsxx_ops = { 390struct op_mips_model op_model_mipsxx_ops = {