aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell Currey <ruscur@russell.cc>2017-08-10 16:58:40 +1000
committerStewart Smith <stewart@linux.vnet.ibm.com>2017-08-11 16:37:22 +1000
commita62298210479a975cc0a51f68c66a27f66ed59c2 (patch)
treeec6e534be88024d7eb5534983d0f07fcc1aafc79
parent891665d2c1e93fcedc0191cb0d4315a7609f427b (diff)
downloadskiboot-a62298210479a975cc0a51f68c66a27f66ed59c2.zip
skiboot-a62298210479a975cc0a51f68c66a27f66ed59c2.tar.gz
skiboot-a62298210479a975cc0a51f68c66a27f66ed59c2.tar.bz2
phb4: Skip attempting to fix PHBs broken on boot
If a PHB is marked broken it didn't work on boot, and if it didn't work on boot then there's no point trying to recover it later Signed-off-by: Russell Currey <ruscur@russell.cc> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
-rw-r--r--hw/phb4.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/hw/phb4.c b/hw/phb4.c
index 7e8f68b..012a8cd 100644
--- a/hw/phb4.c
+++ b/hw/phb4.c
@@ -2608,6 +2608,10 @@ static int64_t phb4_creset(struct pci_slot *slot)
struct phb4 *p = phb_to_phb4(slot->phb);
uint64_t pbcq_status, reg;
+ /* Don't even try fixing a broken PHB */
+ if (p->state == PHB4_STATE_BROKEN)
+ return OPAL_HARDWARE;
+
switch (slot->state) {
case PHB4_SLOT_NORMAL:
case PHB4_SLOT_CRESET_START: