Commit 1d842674 authored by Wu Zhangjin's avatar Wu Zhangjin Committed by Ralf Baechle

MIPS: Oprofile: Fixup of loongson2_exit()

When exiting from loongson2_exit(), we need to reset the counter
register too, this patch adds a function reset_counters() to do it, by
the way, this function will be shared by Perf.
Signed-off-by: default avatarWu Zhangjin <wuzhangjin@gmail.com>
Cc: linux-mips@linux-mips.org
Patchwork: http://patchwork.linux-mips.org/patch/1199/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 2e93d1ec
...@@ -43,6 +43,12 @@ static struct loongson2_register_config { ...@@ -43,6 +43,12 @@ static struct loongson2_register_config {
static char *oprofid = "LoongsonPerf"; static char *oprofid = "LoongsonPerf";
static irqreturn_t loongson2_perfcount_handler(int irq, void *dev_id); static irqreturn_t loongson2_perfcount_handler(int irq, void *dev_id);
static void reset_counters(void *arg)
{
write_c0_perfctrl(0);
write_c0_perfcnt(0);
}
static void loongson2_reg_setup(struct op_counter_config *cfg) static void loongson2_reg_setup(struct op_counter_config *cfg)
{ {
unsigned int ctrl = 0; unsigned int ctrl = 0;
...@@ -139,7 +145,7 @@ static int __init loongson2_init(void) ...@@ -139,7 +145,7 @@ static int __init loongson2_init(void)
static void loongson2_exit(void) static void loongson2_exit(void)
{ {
write_c0_perfctrl(0); reset_counters(NULL);
free_irq(LOONGSON2_PERFCNT_IRQ, oprofid); free_irq(LOONGSON2_PERFCNT_IRQ, oprofid);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment