powerpc/eeh: Disable automatically blocked PCI config
authorGavin Shan <gwshan@linux.vnet.ibm.com>
Wed, 29 Jul 2015 23:26:51 +0000 (09:26 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 18 Aug 2015 09:34:42 +0000 (19:34 +1000)
commit39bfd715b4837433a86c168c610880e9ae2185ae
treebbfcd2b4260f74dc74a3d62b7c644ae47158c3ab
parentdd497154d359ba9d2d3e71075bed794b93b47b48
powerpc/eeh: Disable automatically blocked PCI config

pcibios_set_pcie_reset_state() could be called to complete
reset request when passing through PCI device, flag
EEH_PE_ISOLATED is set before saving the PCI config sapce.
On some Broadcom adapters, EEH_PE_CFG_BLOCKED is automatically
set when the flag EEH_PE_ISOLATED is marked. It caused bogus
data saved from the PCI config space, which will be restored
to the PCI adapter after the reset. Eventually, the hardware
can't work with corrupted data in PCI config space.

The patch fixes the issue with eeh_pe_state_mark_no_cfg(), which
doesn't set EEH_PE_CFG_BLOCKED when seeing EEH_PE_ISOLATED on the
PE, in order to avoid the bogus data saved and restored to the PCI
config space.

Reported-by: Rajanikanth H. Adaveeshaiah <rajanikanth.ha@in.ibm.com>
Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/include/asm/ppc-pci.h
arch/powerpc/kernel/eeh.c
arch/powerpc/kernel/eeh_pe.c