aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell Currey <ruscur@russell.cc>2018-02-20 11:02:11 +1100
committerStewart Smith <stewart@linux.vnet.ibm.com>2018-02-20 00:09:22 -0600
commit0bb960f82ef3c0670406e25b525a6173e319a88e (patch)
tree57dec2ccad949b0e1e9200b93b011d643de27f98
parent7a1f035b57ab83ec980c487a03c333e2bca8362c (diff)
downloadskiboot-0bb960f82ef3c0670406e25b525a6173e319a88e.zip
skiboot-0bb960f82ef3c0670406e25b525a6173e319a88e.tar.gz
skiboot-0bb960f82ef3c0670406e25b525a6173e319a88e.tar.bz2
Revert "pci: Shared slot state synchronisation for hot reset"
An issue was found in shared slot reset where the system can be stuck in an infinite loop, pull the code out until there's a proper fix. This reverts commit 1172a6c57ff3c66f6361e572a1790cbcc0e5ff37. Signed-off-by: Russell Currey <ruscur@russell.cc> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
-rw-r--r--core/pci-slot.c14
1 files changed, 0 insertions, 14 deletions
diff --git a/core/pci-slot.c b/core/pci-slot.c
index f8922df..8bddc14 100644
--- a/core/pci-slot.c
+++ b/core/pci-slot.c
@@ -78,7 +78,6 @@ static void pci_slot_prepare_link_change(struct pci_slot *slot, bool up)
static int64_t pci_slot_run_sm(struct pci_slot *slot)
{
- struct pci_slot *peer = slot->peer_slot;
uint64_t now = mftb();
int64_t ret;
@@ -90,23 +89,10 @@ static int64_t pci_slot_run_sm(struct pci_slot *slot)
slot->delay_tgt_tb = 0;
switch (slot->state & PCI_SLOT_STATE_MASK) {
case PCI_SLOT_STATE_LINK:
- // If the peer slot hasn't finished its hreset, need to wait
- if (peer && peer->state & PCI_SLOT_STATE_HRESET &&
- !pci_slot_has_flags(peer, PCI_SLOT_FLAG_BOOTUP))
- return slot->ops.hreset(peer);
-
ret = slot->ops.poll_link(slot);
- if (peer && peer->state & PCI_SLOT_STATE_LINK &&
- !pci_slot_has_flags(peer, PCI_SLOT_FLAG_BOOTUP))
- ret = MAX(ret, slot->ops.poll_link(peer));
break;
case PCI_SLOT_STATE_HRESET:
ret = slot->ops.hreset(slot);
-
- // If the slot has a peer, it needs to hreset as well.
- if (peer && peer->state == PCI_SLOT_STATE_NORMAL &&
- !pci_slot_has_flags(peer, PCI_SLOT_FLAG_BOOTUP))
- slot->ops.hreset(peer);
break;
case PCI_SLOT_STATE_FRESET:
ret = slot->ops.freset(slot);