aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMahesh Salgaonkar <mahesh@linux.ibm.com>2021-02-09 14:14:11 +0530
committerVasant Hegde <hegdevasant@linux.vnet.ibm.com>2021-03-31 14:29:25 +0530
commitd51eb6f95e7078235ba2217e2dc9fc53e65bc902 (patch)
treeaee5e52dd333d7bc453d15fe66521e2426a09216
parentc3e53f7c950f09bbde78c5f05cbfb460fbd51447 (diff)
downloadskiboot-d51eb6f95e7078235ba2217e2dc9fc53e65bc902.zip
skiboot-d51eb6f95e7078235ba2217e2dc9fc53e65bc902.tar.gz
skiboot-d51eb6f95e7078235ba2217e2dc9fc53e65bc902.tar.bz2
phb4: Avoid MMIO load freeze escalation on every chip
The commit f397cc30bdf8 ("phb4: Only escalate freezes on MMIO load where necessary") introduced a change to restrict escalation to the chips that actually need it. However it missed one case which still causes the escalation on every chip. This affects EEH recovery to cause full PHB reset on some chips which is not necessary. This patch fixes that. Also, add a check for p9 chip in phb4_escalation_required() function. Cc: skiboot-stable@lists.ozlabs.org Signed-off-by: Mahesh Salgaonkar <mahesh@linux.ibm.com> Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
-rw-r--r--hw/phb4.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/hw/phb4.c b/hw/phb4.c
index 73ee03d..31f9fa2 100644
--- a/hw/phb4.c
+++ b/hw/phb4.c
@@ -3590,6 +3590,10 @@ static bool phb4_escalation_required(void)
{
uint64_t pvr = mfspr(SPR_PVR);
+ /* Only on Power9 */
+ if (proc_gen != proc_gen_p9)
+ return false;
+
/*
* Escalation is required on the following chip versions:
* - Cumulus DD1.0
@@ -3850,7 +3854,7 @@ static int64_t phb4_eeh_next_error(struct phb *phb,
if (*first_frozen_pe != (uint64_t)(-1)) {
pesta = phb4_get_pesta(p, *first_frozen_pe);
- if (phb4_freeze_escalate(pesta)) {
+ if (phb4_escalation_required() && phb4_freeze_escalate(pesta)) {
PHBINF(p, "Escalating freeze to fence. PESTA[%lli]=%016llx\n",
*first_frozen_pe, pesta);
p->err.err_class = PHB4_ERR_CLASS_FENCED;