]> git.baikalelectronics.ru Git - kernel.git/commit
powerpc/irq: Don't switch to irq stack from softirq stack
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Mon, 7 Oct 2013 21:08:24 +0000 (08:08 +1100)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 7 Oct 2013 21:19:39 +0000 (14:19 -0700)
commit5ed3e963965bac04046dab9b4565ebe9568c6e5a
treec492c191c688296cdd708e1d9e5fc6cc63197edf
parentd5aac0a86b23c6bf5bac3921a56ba93d06ba4075
powerpc/irq: Don't switch to irq stack from softirq stack

irq_exit() is now called on the irq stack, which can trigger a switch to
the softirq stack from the irq stack.  If an interrupt happens at that
point, we will not properly detect the re-entrancy and clobber the
original return context on the irq stack.

This fixes it.  The side effect is to prevent all nesting from softirq
stack to irq stack even in the "safe" case but it's simpler that way and
matches what x86_64 does.

Reported-by: Cédric Le Goater <clg@fr.ibm.com>
Tested-by: Cédric Le Goater <clg@fr.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/powerpc/kernel/irq.c