mirror of
https://github.com/torvalds/linux
synced 2024-09-16 09:05:45 +00:00
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: Wu Zhangjin <wuzhangjin@gmail.com> Cc: linux-mips@linux-mips.org Patchwork: http://patchwork.linux-mips.org/patch/1199/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
2e93d1ec08
commit
1d84267480
|
@ -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)
|
||||||
|
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue