Skip to content
Commit 1b3ed367 authored by Rabin Vincent's avatar Rabin Vincent Committed by Ralf Baechle
Browse files

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: default avatarRabin Vincent <rabin.vincent@axis.com>
Reviewed-by: default avatarAndrew Bresticker <abrestic@chromium.org>
Acked-by: default avatarThomas 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: default avatarRalf Baechle <ralf@linux-mips.org>
parent 9cc719ab
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