diff options
author | James Hogan <james.hogan@imgtec.com> | 2015-01-19 15:38:24 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2015-02-05 14:37:35 +0100 |
commit | 1b6af71a8f50f59a96f65ad90e4d20612d2a2526 (patch) | |
tree | f13a4bc3c18ef198249c9deb79bbd90561801c07 /kernel/seccomp.c | |
parent | c2d9f17757310484ab4fd65954f5f9850f6a1349 (diff) | |
download | op-kernel-dev-1b6af71a8f50f59a96f65ad90e4d20612d2a2526.zip op-kernel-dev-1b6af71a8f50f59a96f65ad90e4d20612d2a2526.tar.gz |
IRQCHIP: mips-gic: Avoid rerouting timer IRQs for smp-cmp
Commit e9de688dac65 ("irqchip: mips-gic: Support local interrupts")
changed the GIC irqchip driver so that all local interrupts were routed
to the same CPU pin used for external interrupts. Unfortunately this
causes a regression when smp-cmp is used. The CPUs are started by the
bootloader and put in a timer based waiting poll loop, but when their
timer interrupts are rerouted to a different IRQ pin which is not
unmasked they never wake up.
Since smp-cmp support is deprecated and everybody who was using it
should be switching to smp-cps which brings up the secondary CPUs
without bootloader assistance, I've gone for the simple fix which can be
easily removed once smp-cmp is removed, rather than a fully generic fix.
In __gic_init() the local GIC_VPE_TIMER_MAP register is read to find the
boot-time routing of the local timer interrupt, and a chained handler is
added to that CPU pin as well as the normal one.
Signed-off-by: James Hogan <james.hogan@imgtec.com>
Fixes: e9de688dac65 ("irqchip: mips-gic: Support local interrupts")
Cc: Andrew Bresticker <abrestic@chromium.org>
Cc: Qais Yousef <qais.yousef@imgtec.com>
Cc: Paul Burton <paul.burton@imgtec.com>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-mips@linux-mips.org
Reviewed-by: Andrew Bresticker <abrestic@chromium.org>
Patchwork: https://patchwork.linux-mips.org/patch/9081/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'kernel/seccomp.c')
0 files changed, 0 insertions, 0 deletions