powerpc/irq: Run softirqs off the top of the irq stack
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Mon, 23 Sep 2013 04:29:11 +0000 (14:29 +1000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Wed, 25 Sep 2013 04:15:36 +0000 (14:15 +1000)
commit0366a1c70b89efed4f9d590216bb004a16effbed
tree5090ad127863968876119f1bb022a7bce32842ab
parent4a10c2ac2f368583138b774ca41fac4207911983
powerpc/irq: Run softirqs off the top of the irq stack

Nowadays, irq_exit() calls __do_softirq() pretty much directly
instead of calling do_softirq() which switches to the decicated
softirq stack.

This has lead to observed stack overflows on powerpc since we call
irq_enter() and irq_exit() outside of the scope that switches to
the irq stack.

This fixes it by moving the stack switching up a level, making
irq_enter() and irq_exit() run off the irq stack.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/include/asm/irq.h
arch/powerpc/kernel/irq.c
arch/powerpc/kernel/misc_32.S
arch/powerpc/kernel/misc_64.S