powerpc/irq: Fix bug with new lazy IRQ handling code
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 8 May 2012 03:31:59 +0000 (13:31 +1000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 8 May 2012 23:42:21 +0000 (09:42 +1000)
commit56dfa7fa19e36db352a94be022243ed461710119
tree37ea957522aa18a2d3f4fb62629e9e4ca0e7f38c
parent810b4de25e53459323ff48957b0162b48d6cbd57
powerpc/irq: Fix bug with new lazy IRQ handling code

We had a case where we could turn on hard interrupts while
leaving the PACA_IRQ_HARD_DIS bit set in the PACA. This can
in turn cause a BUG_ON() to hit in __check_irq_replay() due
to interrupt state getting out of sync.

The assembly code was also way too convoluted. Instead, we
now leave it to the C code to do the right thing which ends
up being smaller and more readable.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/kernel/entry_64.S
arch/powerpc/kernel/irq.c