diff options
author | Wu Zhangjin <wuzhangjin@gmail.com> | 2009-11-06 05:45:06 -0500 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2009-12-16 20:57:10 -0500 |
commit | 937893cf5be53203eabc6f4db29f86b1fdeea203 (patch) | |
tree | f629e3985a8234237c2335cc1e5e06c14a4c763c /arch | |
parent | a3ed495190ebe918f4584291ed8c76f1c97a84fd (diff) |
MIPS: oprofile: Only do performance counter handling for counter interrupts
In Loongson2f IP6 is shared by bonito and perfcounters so we need to avoid
do_IRQ for perfcounter when the interrupt is from bonito.
Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com>
Cc: linux-mips@linux-mips.org
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/mips/oprofile/op_model_loongson2.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/mips/oprofile/op_model_loongson2.c b/arch/mips/oprofile/op_model_loongson2.c index 575cd1473475..475ff46712ab 100644 --- a/arch/mips/oprofile/op_model_loongson2.c +++ b/arch/mips/oprofile/op_model_loongson2.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Loongson2 performance counter driver for oprofile | 2 | * Loongson2 performance counter driver for oprofile |
3 | * | 3 | * |
4 | * Copyright (C) 2009 Lemote Inc. & Insititute of Computing Technology | 4 | * Copyright (C) 2009 Lemote Inc. |
5 | * Author: Yanhua <yanh@lemote.com> | 5 | * Author: Yanhua <yanh@lemote.com> |
6 | * Author: Wu Zhangjin <wuzj@lemote.com> | 6 | * Author: Wu Zhangjin <wuzj@lemote.com> |
7 | * | 7 | * |
@@ -125,6 +125,9 @@ static irqreturn_t loongson2_perfcount_handler(int irq, void *dev_id) | |||
125 | */ | 125 | */ |
126 | 126 | ||
127 | /* Check whether the irq belongs to me */ | 127 | /* Check whether the irq belongs to me */ |
128 | enabled = read_c0_perfcnt() & LOONGSON2_PERFCNT_INT_EN; | ||
129 | if (!enabled) | ||
130 | return IRQ_NONE; | ||
128 | enabled = reg.cnt1_enabled | reg.cnt2_enabled; | 131 | enabled = reg.cnt1_enabled | reg.cnt2_enabled; |
129 | if (!enabled) | 132 | if (!enabled) |
130 | return IRQ_NONE; | 133 | return IRQ_NONE; |