Commit 63796558 authored by Gavin Shan's avatar Gavin Shan Committed by Benjamin Herrenschmidt

powerpc/powernv: Fix endless reporting frozen PE

Once one specific PE has been marked as EEH_PE_ISOLATED, it's in
the middile of recovery or removed permenently. We needn't report
the frozen PE again. Otherwise, we will have endless reporting
same frozen PE.
Signed-off-by: default avatarGavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent d2b0f6f7
...@@ -745,6 +745,11 @@ static int ioda_eeh_next_error(struct eeh_pe **pe) ...@@ -745,6 +745,11 @@ static int ioda_eeh_next_error(struct eeh_pe **pe)
* If we can't find the corresponding PE, the * If we can't find the corresponding PE, the
* PEEV / PEST would be messy. So we force an * PEEV / PEST would be messy. So we force an
* fenced PHB so that it can be recovered. * fenced PHB so that it can be recovered.
*
* If the PE has been marked as isolated, that
* should have been removed permanently or in
* progress with recovery. We needn't report
* it again.
*/ */
if (ioda_eeh_get_pe(hose, frozen_pe_no, pe)) { if (ioda_eeh_get_pe(hose, frozen_pe_no, pe)) {
*pe = phb_pe; *pe = phb_pe;
...@@ -753,6 +758,8 @@ static int ioda_eeh_next_error(struct eeh_pe **pe) ...@@ -753,6 +758,8 @@ static int ioda_eeh_next_error(struct eeh_pe **pe)
hose->global_number, hose->global_number,
frozen_pe_no); frozen_pe_no);
ret = EEH_NEXT_ERR_FENCED_PHB; ret = EEH_NEXT_ERR_FENCED_PHB;
} else if ((*pe)->state & EEH_PE_ISOLATED) {
ret = EEH_NEXT_ERR_NONE;
} else { } else {
pr_err("EEH: Frozen PE#%x on PHB#%x detected\n", pr_err("EEH: Frozen PE#%x on PHB#%x detected\n",
(*pe)->addr, (*pe)->phb->global_number); (*pe)->addr, (*pe)->phb->global_number);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment