linux/arch/powerpc
Benjamin Herrenschmidt be2cf20a5a powerpc: More fixes for lazy IRQ vs. idle
Looks like we still have issues with pSeries and Cell idle code
vs. the lazy irq state. In fact, the reset fixes that went upstream
are exposing the problem more by causing BUG_ON() to trigger (which
this patch turns into a WARN_ON instead).

We need to be careful when using a variant of low power state that
has the side effect of turning interrupts back on, to properly set
all the SW & lazy state to look as if everything is enabled before
we enter the low power state with MSR:EE off as we will return with
MSR:EE on. If not, we have a discrepancy of state which can cause
things to go very wrong later on.

This patch moves the logic into a helper and uses it from the
pseries and cell idle code. The power4/970 idle code already got
things right (in assembly even !) so I'm not touching it. The power7
"bare metal" idle code is subtly different and correct. Remains PA6T
and some hypervisor based Cell platforms which have questionable
code in there, but they are mostly dead platforms so I'll fix them
when I manage to get final answers from the respective maintainers
about how the low power state actually works on them.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
CC: stable@vger.kernel.org [v3.4]
2012-07-10 19:16:07 +10:00
..
boot arm-soc: driver specific updates 2012-05-26 12:22:27 -07:00
configs Sound updates for 3.5-rc1 2012-05-23 13:05:43 -07:00
include/asm powerpc: More fixes for lazy IRQ vs. idle 2012-07-10 19:16:07 +10:00
kernel powerpc: More fixes for lazy IRQ vs. idle 2012-07-10 19:16:07 +10:00
kvm powerpc/kvm: sldi should be sld 2012-07-02 14:30:12 +10:00
lib powerpc: Use the new generic strncpy_from_user() and strnlen_user() 2012-05-27 21:00:07 -07:00
math-emu powerpc/math_emu/efp: Look for errata handler when type mismatches 2011-10-06 23:36:47 -05:00
mm powerpc: Fix uninitialised error in numa.c 2012-06-29 14:35:35 +10:00
net powerpc: Fix BPF_JIT code to link with multiple TOCs 2012-06-29 14:35:34 +10:00
oprofile Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
perf perf: Pass last sampling period to perf_sample_data_init() 2012-05-09 15:23:12 +02:00
platforms powerpc: More fixes for lazy IRQ vs. idle 2012-07-10 19:16:07 +10:00
sysdev Merge remote-tracking branch 'jwb/next' into next 2012-05-10 12:58:24 +10:00
xmon powerpc/xmon: Use cpumask iterator to avoid warning 2012-07-02 14:30:11 +10:00
Kconfig powerpc: Use the new generic strncpy_from_user() and strnlen_user() 2012-05-27 21:00:07 -07:00
Kconfig.debug irqdomain: Remove powerpc dependency from debugfs file 2012-03-29 14:31:02 -06:00
Makefile powerpc/crypto: Build files for the nx device driver 2012-05-16 15:05:45 +10:00
relocs_check.pl powerpc: Process dynamic relocations for kernel 2011-12-20 10:21:08 -05:00