]> git.baikalelectronics.ru Git - kernel.git/commit
powerpc/powernv: Check for IRQHAPPENED before sleeping
authorPreeti U Murthy <preeti@linux.vnet.ibm.com>
Wed, 2 Jul 2014 03:49:35 +0000 (09:19 +0530)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Fri, 11 Jul 2014 02:55:06 +0000 (12:55 +1000)
commit3acf68d776955fcf4cdb254cddffdaa0e5770bf8
treeca73dcddd17e47166f6a7600a3db955732ad3577
parentabe841db5849afb50191517e1e76ed785da83145
powerpc/powernv: Check for IRQHAPPENED before sleeping

Commit ed59ee07: "powerpc/powernv: Make it possible to skip the IRQHAPPENED
check in power7_nap()" added code that prevents cpus from checking for
pending interrupts just before entering sleep state, which is wrong. These
interrupts are delivered during the soft irq disabled state of the cpu.

A cpu cannot enter any idle state with pending interrupts because they will
never be serviced until the next time the cpu is woken up by some other
interrupt. Its only then that the pending interrupts are replayed. This can result
in device timeouts or warnings about this cpu being stuck.

This patch fixes ths issue by ensuring that cpus check for pending interrupts
just before entering any idle state as long as they are not in the path of split
core operations.

Signed-off-by: Preeti U Murthy <preeti@linux.vnet.ibm.com>
Acked-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/kernel/idle_power7.S