diff options
author | Russell Currey <ruscur@russell.cc> | 2018-02-20 11:02:11 +1100 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2018-02-20 00:09:22 -0600 |
commit | 0bb960f82ef3c0670406e25b525a6173e319a88e (patch) | |
tree | 57dec2ccad949b0e1e9200b93b011d643de27f98 /core | |
parent | 7a1f035b57ab83ec980c487a03c333e2bca8362c (diff) | |
download | talos-skiboot-0bb960f82ef3c0670406e25b525a6173e319a88e.tar.gz talos-skiboot-0bb960f82ef3c0670406e25b525a6173e319a88e.zip |
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>
Diffstat (limited to 'core')
-rw-r--r-- | core/pci-slot.c | 14 |
1 files changed, 0 insertions, 14 deletions
diff --git a/core/pci-slot.c b/core/pci-slot.c index f8922df5..8bddc147 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); |