diff options
author | Gavin Shan <gwshan@linux.vnet.ibm.com> | 2014-05-01 19:49:48 +1000 |
---|---|---|
committer | Eli Qiao <taget@linux.vnet.ibm.com> | 2014-05-04 10:55:21 +0800 |
commit | f7e85433c34d54cc49dd9fffc47d2bf3f86e6863 (patch) | |
tree | ba4286852ac423ff4c914d9c07540fa1a4331f9c | |
parent | 544b616f43a5569e9dc3012b357c2fcd0e74f421 (diff) | |
download | powerkvm-f7e85433c34d54cc49dd9fffc47d2bf3f86e6863.tar.gz |
powerpc/powernv: Don't escalate non-existing frozen PE
Commit 63fa7d4 ("powerpc/eeh: Escalate error on non-existing PE")
escalates the frozen state on non-existing PE to fenced PHB. It
was to improve kdump reliability. After that, commit 716a0e8 ("
powrpc/powernv: Reset PHB in kdump kernel") was introduced to
apply complete reset on all PHBs to increase the kdump reliability.
Commit 63fa7d4 becomes unuseful and to issue PHB reset on non-fenced
(on HW level) PHB would cause unexpected problems. So I'd like to
revert it.
It's responsing to bug#109562.
Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
-rw-r--r-- | arch/powerpc/platforms/powernv/eeh-ioda.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/arch/powerpc/platforms/powernv/eeh-ioda.c b/arch/powerpc/platforms/powernv/eeh-ioda.c index a93c73b6d9454c..ff93f41c78557b 100644 --- a/arch/powerpc/platforms/powernv/eeh-ioda.c +++ b/arch/powerpc/platforms/powernv/eeh-ioda.c @@ -818,12 +818,12 @@ static int ioda_eeh_next_error(struct eeh_pe **pe) * it again. */ if (ioda_eeh_get_pe(hose, frozen_pe_no, pe)) { - *pe = phb_pe; - pr_err("EEH: Escalated fenced PHB#%x " - "detected for PE#%llx\n", - hose->global_number, - frozen_pe_no); - ret = EEH_NEXT_ERR_FENCED_PHB; + /* Try best to clear it */ + pr_info("EEH: Clear non-existing PHB#%x-PE#%llx\n", + hose->global_number, frozen_pe_no); + opal_pci_eeh_freeze_clear(phb->opal_id, frozen_pe_no, + OPAL_EEH_ACTION_CLEAR_FREEZE_ALL); + ret = EEH_NEXT_ERR_NONE; } else if ((*pe)->state & EEH_PE_ISOLATED) { ret = EEH_NEXT_ERR_NONE; } else { |