]> git.ipfire.org Git - people/ms/linux.git/commit - arch/mips/kernel/irq_cpu.c
MIPS: IRQ: Fix disable_irq on CPU IRQs
authorFelix Fietkau <nbd@openwrt.org>
Thu, 15 Jan 2015 18:05:28 +0000 (19:05 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 11 Feb 2015 06:48:16 +0000 (14:48 +0800)
commit290deda94058c4aaeec0b0f9da43564c363b1fec
tree711659231bd8e0a1063d311a366490cd5239850e
parent9a1acfe2a3897827283b25fa24400935bc4ee2d2
MIPS: IRQ: Fix disable_irq on CPU IRQs

commit a3e6c1eff54878506b2dddcc202df9cc8180facb upstream.

If the irq_chip does not define .irq_disable, any call to disable_irq
will defer disabling the IRQ until it fires while marked as disabled.
This assumes that the handler function checks for this condition, which
handle_percpu_irq does not. In this case, calling disable_irq leads to
an IRQ storm, if the interrupt fires while disabled.

This optimization is only useful when disabling the IRQ is slow, which
is not true for the MIPS CPU IRQ.

Disable this optimization by implementing .irq_disable and .irq_enable

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/8949/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/mips/kernel/irq_cpu.c