diff options
author | Alexander Duyck <aduyck@mirantis.com> | 2015-10-30 00:21:16 +0300 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2015-10-30 23:14:56 +0300 |
commit | b390864482924a21f8d7e25636d0140de93fba7e (patch) | |
tree | df4887ac9ea9c5c098474654aef3218f51b6030f /drivers/pci | |
parent | a39e3fcd72356e2bcb46fd99ec4e98064bd806b2 (diff) | |
download | linux-b390864482924a21f8d7e25636d0140de93fba7e.tar.xz |
PCI: Wait 1 second between disabling VFs and clearing NumVFs
Per sec 3.3.3.1 of the SR-IOV spec, r1.1, we must allow 1.0s after clearing
VF Enable before reading any field in the SR-IOV Extended Capability.
Wait 1 second before calling pci_iov_set_numvfs(), which reads
PCI_SRIOV_VF_OFFSET and PCI_SRIOV_VF_STRIDE after it sets PCI_SRIOV_NUM_VF.
[bhelgaas: split to separate patch for reviewability, add spec reference]
Signed-off-by: Alexander Duyck <aduyck@mirantis.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Diffstat (limited to 'drivers/pci')
-rw-r--r-- | drivers/pci/iov.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/pci/iov.c b/drivers/pci/iov.c index fada98da731b..24428d5f60cd 100644 --- a/drivers/pci/iov.c +++ b/drivers/pci/iov.c @@ -339,13 +339,13 @@ failed: iov->ctrl &= ~(PCI_SRIOV_CTRL_VFE | PCI_SRIOV_CTRL_MSE); pci_cfg_access_lock(dev); pci_write_config_word(dev, iov->pos + PCI_SRIOV_CTRL, iov->ctrl); - pci_iov_set_numvfs(dev, 0); ssleep(1); pci_cfg_access_unlock(dev); if (iov->link != dev->devfn) sysfs_remove_link(&dev->dev.kobj, "dep_link"); + pci_iov_set_numvfs(dev, 0); return rc; } |