[MIPS] SMTC: Fix recursion in instant IPI replay code.
authorRalf Baechle <ralf@linux-mips.org>
Thu, 29 Mar 2007 22:42:42 +0000 (23:42 +0100)
committerRalf Baechle <ralf@linux-mips.org>
Thu, 29 Mar 2007 22:46:36 +0000 (23:46 +0100)
commit8a1e97ee2e025f116765c92409a3cf8f6cb07ad6
treec3df538fce3f32b35b1b8355a9a411cb668e724e
parent6c9fde4bfff11b2fd93b4e518ae7ecb25a9244e4
[MIPS] SMTC: Fix recursion in instant IPI replay code.

local_irq_restore -> raw_local_irq_restore -> irq_restore_epilog ->
smtc_ipi_replay -> smtc_ipi_dq -> spin_unlock_irqrestore ->
_spin_unlock_irqrestore -> local_irq_restore

The recursion does abort when there is no more IPI queued for a CPU, so
this isn't usually fatal which is why we got away with this for so long
until this was discovered by code inspection.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/smtc.c
include/asm-mips/irqflags.h
include/asm-mips/smtc_ipi.h