aboutsummaryrefslogtreecommitdiff
path: root/hw
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 /hw
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>
Diffstat (limited to 'hw')
-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;