powerpc: check_and_cede_processor() never cedes
authorAnton Blanchard <anton@samba.org>
Wed, 27 Jun 2012 13:13:52 +0000 (13:13 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Fri, 29 Jun 2012 04:35:37 +0000 (14:35 +1000)
commit0b17ba7258db83cd02da560884e053b85de371f2
tree970b6d210323d31f037c8593fd325636ec40a843
parent2d773aa4810d4a612d1c879faacc38594cc3f841
powerpc: check_and_cede_processor() never cedes

Commit f948501b36c6 ("Make hard_irq_disable() actually hard-disable
interrupts") caused check_and_cede_processor to stop working.
->irq_happened will never be zero right after a hard_irq_disable
so the compiler removes the call to cede_processor completely.

The bug was introduced back in the lazy interrupt handling rework
of 3.4 but was hidden until recently because hard_irq_disable did
nothing.

This issue will eventually appear in 3.4 stable since the
hard_irq_disable fix is marked stable, so mark this one for stable
too.

Signed-off-by: Anton Blanchard <anton@samba.org>
Cc: stable@vger.kernel.org
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/include/asm/hw_irq.h
arch/powerpc/platforms/pseries/processor_idle.c