diff options
author | Rabin Vincent <rabin.vincent@axis.com> | 2015-06-12 10:01:56 +0200 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2015-06-13 11:33:00 +0200 |
commit | 1b3ed367ce11fb39a345d807ef4168f727236083 (patch) | |
tree | be2d9178cc1b9503d664e099de37fd87134ecbaf /lib/mpi | |
parent | 9cc719ab3f4f639d629ac8ff09e9b998bc006f68 (diff) | |
download | linux-1b3ed367ce11fb39a345d807ef4168f727236083.tar.gz linux-1b3ed367ce11fb39a345d807ef4168f727236083.tar.bz2 linux-1b3ed367ce11fb39a345d807ef4168f727236083.zip |
IRQCHIP: mips-gic: Don't nest calls to do_IRQ()
The GIC chained handlers use do_IRQ() to call the subhandlers. This
means that irq_enter() calls get nested, which leads to preempt count
looking like we're in nested interrupts, which in turn leads to all
system time being accounted as IRQ time in account_system_time().
Fix it by using generic_handle_irq(). Since these same functions are
used in some systems (if cpu_has_veic) from a low-level vectored
interrupt handler which does not go throught do_IRQ(), we need to do it
conditionally.
Signed-off-by: Rabin Vincent <rabin.vincent@axis.com>
Reviewed-by: Andrew Bresticker <abrestic@chromium.org>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-mips@linux-mips.org
Cc: tglx@linutronix.de
Cc: jason@lakedaemon.net
Patchwork: https://patchwork.linux-mips.org/patch/10545/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'lib/mpi')
0 files changed, 0 insertions, 0 deletions