return rtc_mips_set_mmss(now.tv_sec);
 }
 
-int null_perf_irq(void)
+static int null_perf_irq(void)
 {
        return 0;
 }
 
-EXPORT_SYMBOL(null_perf_irq);
-
 int (*perf_irq)(void) = null_perf_irq;
 
 EXPORT_SYMBOL(perf_irq);
 
 
 #define M_COUNTER_OVERFLOW             (1UL      << 31)
 
+static int (*save_perf_irq)(void);
+
 #ifdef CONFIG_MIPS_MT_SMP
 static int cpu_has_mipsmt_pertccounters;
 #define WHAT           (M_TC_EN_VPE | \
                return -ENODEV;
        }
 
+       save_perf_irq = perf_irq;
        perf_irq = mipsxx_perfcount_handler;
 
        return 0;
        counters = counters_per_cpu_to_total(counters);
        on_each_cpu(reset_counters, (void *)counters, 0, 1);
 
-       perf_irq = null_perf_irq;
+       perf_irq = save_perf_irq;
 }
 
 struct op_mips_model op_model_mipsxx_ops = {