diff options
author | Gavin Shan <gwshan@linux.vnet.ibm.com> | 2015-08-28 04:57:00 +0300 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2015-08-28 06:26:31 +0300 |
commit | 259800135c654a098d9f0adfdd3d1f20eef1f231 (patch) | |
tree | 25082fd87a0a6064d5f58eee8d2f1dcba656e1e7 /drivers/hwspinlock | |
parent | ea0f8acf4d44727f7d3a38072566029bf5e17b44 (diff) | |
download | linux-259800135c654a098d9f0adfdd3d1f20eef1f231.tar.xz |
powerpc/eeh: Fix fenced PHB caused by eeh_slot_error_detail()
The config space of some PCI devices can't be accessed when their
PEs are in frozen state. Otherwise, fenced PHB might be seen.
Those PEs are identified with flag EEH_PE_CFG_RESTRICTED, meaing
EEH_PE_CFG_BLOCKED is set automatically when the PE is put to
frozen state (EEH_PE_ISOLATED). eeh_slot_error_detail() restores
PCI device BARs with eeh_pe_restore_bars(), which then calls
eeh_ops->restore_config() to reinitialize the PCI device in
(OPAL) firmware. eeh_ops->restore_config() produces PCI config
access that causes fenced PHB. The problem was reported on below
adapter:
0001:01:00.0 0200: 14e4:168e (rev 10)
0001:01:00.0 Ethernet controller: Broadcom Corporation \
NetXtreme II BCM57810 10 Gigabit Ethernet (rev 10)
This fixes the issue by skipping eeh_pe_restore_bars() in
eeh_slot_error_detail() when EEH_PE_CFG_BLOCKED is set for the PE.
Fixes: b6541db1 ("powerpc/eeh: Block PCI config access upon frozen PE")
Cc: stable@vger.kernel.org # v4.0+
Reported-by: Manvanthara B. Puttashankar <mputtash@in.ibm.com>
Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'drivers/hwspinlock')
0 files changed, 0 insertions, 0 deletions