linux/arch/powerpc/platforms
Gavin Shan 7895470063 powerpc/eeh: Avoid I/O access during PE reset
We have suffered recrusive frozen PE a lot, which was caused
by IO accesses during the PE reset. Ben came up with the good
idea to keep frozen PE until recovery (BAR restore) gets done.
With that, IO accesses during PE reset are dropped by hardware
and wouldn't incur the recrusive frozen PE any more.

The patch implements the idea. We don't clear the frozen state
until PE reset is done completely. During the period, the EEH
core expects unfrozen state from backend to keep going. So we
have to reuse EEH_PE_RESET flag, which has been set during PE
reset, to return normal state from backend. The side effect is
we have to clear frozen state for towice (PE reset and clear it
explicitly), but that's harmless.

We have some limitations on pHyp. pHyp doesn't allow to enable
IO or DMA for unfrozen PE. So we don't enable them on unfrozen PE
in eeh_pci_enable(). We have to enable IO before grabbing logs on
pHyp. Otherwise, 0xFF's is always returned from PCI config space.
Also, we had wrong return value from eeh_pci_enable() for
EEH_OPT_THAW_DMA case. The patch fixes it too.

Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2014-04-28 17:34:10 +10:00
..
8xx powerpc: Remove unused REDBOOT Kconfig parameter 2013-12-30 14:17:00 +11:00
40x Removal of GENERIC_GPIO for v3.10 2013-05-09 09:59:16 -07:00
44x usb: host: remove selects of USB_ARCH_HAS_?HCI 2014-02-18 12:36:38 -08:00
52xx Merge remote-tracking branch 'agust/next' into next 2014-01-29 16:53:55 +11:00
82xx powerpc: add explicit OF includes 2013-10-09 20:04:11 -05:00
83xx powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
85xx fsl/pci: The new pci suspend/resume implementation 2014-03-19 22:37:44 -05:00
86xx powerpc: add explicit OF includes 2013-10-09 20:04:11 -05:00
512x powerpc/512x: clk: support MPC5121/5123/5125 SoC variants 2014-01-12 18:59:36 +01:00
amigaone pcspkr: Cleanup Kconfig dependencies 2011-06-09 15:01:41 +02:00
cell arch/powerpc: Use RCU_INIT_POINTER(x, NULL) in platforms/cell/spu_syscalls.c 2014-04-09 12:53:40 +10:00
chrp powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
embedded6xx powerpc/kconfig: Remove TSI108_BRIDGE duplicates 2014-03-19 16:14:44 -05:00
maple POWERPC: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
pasemi powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
powermac powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
powernv powerpc/eeh: Avoid I/O access during PE reset 2014-04-28 17:34:10 +10:00
ps3 Merge branch 'powernv-cpuidle' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2014-04-02 13:47:29 -07:00
pseries powerpc/pseries: Protect remove_memory() with device hotplug lock 2014-04-28 16:32:14 +10:00
wsp powerpc/iommu: Add it_page_shift field to determine iommu page size 2013-12-30 14:17:13 +11:00
Kconfig powerpc: Better split CONFIG_PPC_INDIRECT_PIO and CONFIG_PPC_INDIRECT_MMIO 2013-08-14 14:57:50 +10:00
Kconfig.cputype ppc: make PPC_BOOK3S_64 select IRQ_WORK 2014-04-07 16:36:09 -07:00
Makefile powerpc: Remove the main legacy iSerie platform code 2012-03-09 10:35:11 +11:00
fsl_uli1575.c of/irq: Refactor interrupt-map parsing 2013-10-24 11:43:04 +01:00