]> git.baikalelectronics.ru Git - kernel.git/commit
powerpc/irq: Fix another case of lazy IRQ state getting out of sync
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 10 May 2012 16:12:38 +0000 (16:12 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Fri, 11 May 2012 23:40:41 +0000 (09:40 +1000)
commitc7fbe182b9d2404e39281d43d329a20972cb4ef5
treead8d3ff6965d675c6bd255c5665deab7fba5df9f
parentc75362824333fea412265b3f49ab50c71a7fae20
powerpc/irq: Fix another case of lazy IRQ state getting out of sync

So we have another case of paca->irq_happened getting out of
sync with the HW irq state. This can happen when a perfmon
interrupt occurs while soft disabled, as it will return to a
soft disabled but hard enabled context while leaving a stale
PACA_IRQ_HARD_DIS flag set.

This patch fixes it, and also adds a test for the condition
of those flags being out of sync in arch_local_irq_restore()
when CONFIG_TRACE_IRQFLAGS is enabled.

This helps catching those gremlins faster (and so far I
can't seem see any anymore, so that's good news).

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