linux-kernel-test/arch/powerpc/platforms/pseries
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
..
cmm.c power: cmm - convert sysdev_class to a regular subsystem 2011-12-21 15:09:51 -08:00
dlpar.c powerpc/pseries: Avoid spurious error during hotplug CPU add 2011-09-20 09:20:00 +10:00
dtl.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
eeh_cache.c powerpc/eeh: Replace pci_dn with eeh_dev for EEH address cache 2012-03-09 11:39:42 +11:00
eeh_dev.c powerpc/eeh: Remove eeh device from OF node 2012-03-28 11:31:57 +11:00
eeh_driver.c powerpc/eeh: Replace pci_dn with eeh_dev for EEH aux components 2012-03-09 11:39:46 +11:00
eeh_event.c powerpc/eeh: Fix use of set_current_state() in eeh event handling set_current_state() wart 2012-04-02 14:31:19 +10:00
eeh_pseries.c powerpc/eeh: pseries platform config space access in EEH 2012-03-09 11:39:51 +11:00
eeh_sysfs.c powerpc/eeh: Replace pci_dn with eeh_dev for EEH sysfs 2012-03-09 11:39:40 +11:00
eeh.c powerpc: Use WARN instead of dump_stack when printing EEH error backtrace 2012-04-30 15:37:27 +10:00
event_sources.c powerpc/pseries: Add WARN_ON() to request_event_sources_irqs() on irq allocation/request failure 2010-07-09 11:28:32 +10:00
firmware.c powerpc: Add VPHN firmware feature 2010-11-29 15:48:22 +11:00
hotplug-cpu.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
hotplug-memory.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2011-07-25 22:59:39 -07:00
hvCall_inst.c powerpc: Fix unpaired probe_hcall_entry and probe_hcall_exit 2012-01-03 12:09:27 +11:00
hvCall.S powerpc: Fix unpaired __trace_hcall_entry and __trace_hcall_exit 2012-01-11 12:50:26 +11:00
hvconsole.c powerpc: convert hvconsole.c to export.h ; fix implicit use of errno.h 2011-10-31 19:30:43 -04:00
hvcserver.c
io_event_irq.c powerpc: Make function that parses RTAS error logs global 2012-03-28 11:31:58 +11:00
iommu.c powerpc/pseries: Fix software invalidate TCE 2012-06-29 14:35:37 +10:00
Kconfig Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-05-22 19:22:50 -07:00
kexec.c powerpc/pseries: Simplify vpa deregistration functions 2011-08-05 14:47:58 +10:00
lpar.c powerpc: Remove FW_FEATURE ISERIES from arch code 2012-03-21 11:16:11 +11:00
Makefile powerpc/eeh: Introduce EEH device 2012-03-09 11:39:29 +11:00
mobility.c powerpc: Fix up implicit stat.h users 2011-10-31 19:30:39 -04:00
msi.c powerpc/eeh: Cleanup function names in the EEH core 2012-03-09 11:08:37 +11:00
nvram.c kmsg - kmsg_dump() use iterator to receive log buffer content 2012-06-15 14:53:59 -07:00
offline_states.h powerpc/smp: soft-replugged CPUs must go back to start_secondary 2011-04-01 15:37:09 +11:00
pci_dlpar.c Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-03-23 14:02:12 -07:00
pci.c
plpar_wrappers.h powerpc: Clean up lppaca->cede_latency_hint 2012-04-30 15:37:15 +10:00
power.c [POWERPC] Fix warning in pseries/power.c 2008-02-20 13:33:37 +11:00
processor_idle.c powerpc: More fixes for lazy IRQ vs. idle 2012-07-10 19:16:07 +10:00
pseries_energy.c cpu: convert 'cpu' and 'machinecheck' sysdev_class to a regular subsystem 2011-12-21 14:29:42 -08:00
pseries.h powerpc/cpuidle: cpuidle driver for pSeries 2011-12-08 13:56:31 +11:00
ras.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
reconfig.c powerpc/pseries: Add pseries update notifier for OFDT prop changes 2012-05-14 10:49:06 +10:00
scanlog.c llseek: automatically add .llseek fop 2010-10-15 15:53:27 +02:00
setup.c Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-03-23 14:02:12 -07:00
smp.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
suspend.c powerpc/pseries: Fix partition migration hang in stop_topology_update 2012-02-14 15:01:39 +11:00