Commit ce288ec3 authored by Alexander Duyck's avatar Alexander Duyck Committed by Bjorn Helgaas

PCI: Remove redundant validation of SR-IOV offset/stride registers

Previously, we read, validated, and cached PCI_SRIOV_VF_OFFSET and
PCI_SRIOV_VF_STRIDE in sriov_enable().  But sriov_init() now does
that via compute_max_vf_buses(), so we don't need to do it again.

Remove the PCI_SRIOV_VF_OFFSET and PCI_SRIOV_VF_STRIDE config reads from
sriov_enable().  The pci_sriov structure already contains the offset and
stride corresponding to the current NumVFs.

[bhelgaas: split to separate patch for reviewability]
Signed-off-by: default avatarAlexander Duyck <aduyck@mirantis.com>
Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
Reviewed-by: default avatarWei Yang <weiyang@linux.vnet.ibm.com>
parent ea9a8854
...@@ -235,7 +235,7 @@ static int sriov_enable(struct pci_dev *dev, int nr_virtfn) ...@@ -235,7 +235,7 @@ static int sriov_enable(struct pci_dev *dev, int nr_virtfn)
int rc; int rc;
int i, j; int i, j;
int nres; int nres;
u16 offset, stride, initial; u16 initial;
struct resource *res; struct resource *res;
struct pci_dev *pdev; struct pci_dev *pdev;
struct pci_sriov *iov = dev->sriov; struct pci_sriov *iov = dev->sriov;
...@@ -258,11 +258,6 @@ static int sriov_enable(struct pci_dev *dev, int nr_virtfn) ...@@ -258,11 +258,6 @@ static int sriov_enable(struct pci_dev *dev, int nr_virtfn)
(!(iov->cap & PCI_SRIOV_CAP_VFM) && (nr_virtfn > initial))) (!(iov->cap & PCI_SRIOV_CAP_VFM) && (nr_virtfn > initial)))
return -EINVAL; return -EINVAL;
pci_read_config_word(dev, iov->pos + PCI_SRIOV_VF_OFFSET, &offset);
pci_read_config_word(dev, iov->pos + PCI_SRIOV_VF_STRIDE, &stride);
if (!offset || (nr_virtfn > 1 && !stride))
return -EIO;
nres = 0; nres = 0;
for (i = 0; i < PCI_SRIOV_NUM_BARS; i++) { for (i = 0; i < PCI_SRIOV_NUM_BARS; i++) {
bars |= (1 << (i + PCI_IOV_RESOURCES)); bars |= (1 << (i + PCI_IOV_RESOURCES));
...@@ -275,9 +270,6 @@ static int sriov_enable(struct pci_dev *dev, int nr_virtfn) ...@@ -275,9 +270,6 @@ static int sriov_enable(struct pci_dev *dev, int nr_virtfn)
return -ENOMEM; return -ENOMEM;
} }
iov->offset = offset;
iov->stride = stride;
bus = pci_iov_virtfn_bus(dev, nr_virtfn - 1); bus = pci_iov_virtfn_bus(dev, nr_virtfn - 1);
if (bus > dev->bus->busn_res.end) { if (bus > dev->bus->busn_res.end) {
dev_err(&dev->dev, "can't enable %d VFs (bus %02x out of range of %pR)\n", dev_err(&dev->dev, "can't enable %d VFs (bus %02x out of range of %pR)\n",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment