[PATCH 1/3] fix on Store individual VF BAR size in struct pci_sriov
Wei Yang
weiyang at linux.vnet.ibm.com
Thu Feb 5 17:34:23 AEDT 2015
__pci_read_base() will return 1 when it is a 64-bit BAR, which makes the
resource index not correct. So i could not be the index in this case.
Signed-off-by: Wei Yang <weiyang at linux.vnet.ibm.com>
---
drivers/pci/iov.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/pci/iov.c b/drivers/pci/iov.c
index 721987b..b348b72 100644
--- a/drivers/pci/iov.c
+++ b/drivers/pci/iov.c
@@ -444,10 +444,12 @@ found:
rc = -EIO;
goto failed;
}
- iov->barsz[i] = resource_size(res);
+ iov->barsz[res - dev->resource - PCI_IOV_RESOURCES] =
+ resource_size(res);
res->end = res->start + resource_size(res) * total - 1;
dev_info(&dev->dev, "VF BAR%d: %pR (contains BAR%d for %d VFs)\n",
- i, res, i, total);
+ (int)(res - dev->resource - PCI_IOV_RESOURCES), res,
+ (int)(res - dev->resource - PCI_IOV_RESOURCES), total);
nres++;
}
--
1.7.9.5
More information about the Linuxppc-dev
mailing list