aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci/pci-sysfs.c
diff options
context:
space:
mode:
authorDonald Dutile <ddutile@redhat.com>2012-11-05 15:20:37 -0500
committerBjorn Helgaas <bhelgaas@google.com>2012-11-09 23:37:39 -0500
commitbff73156d3ad661655e6d9ef04c2284cf3abb0f1 (patch)
treea26dc79db184a6977919909c3cc2dd653efe83f3 /drivers/pci/pci-sysfs.c
parent1789382a72a537447d65ea4131d8bcc1ad85ce7b (diff)
PCI: Provide method to reduce the number of total VFs supported
Some implementations of SRIOV provide a capability structure value of TotalVFs that is greater than what the software can support. Provide a method to reduce the capability structure reported value to the value the driver can support. This ensures sysfs reports the current capability of the system, hardware and software. Example for its use: igb & ixgbe -- report 8 & 64 as TotalVFs, but drivers only support 7 & 63 maximum. Signed-off-by: Donald Dutile <ddutile@redhat.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Diffstat (limited to 'drivers/pci/pci-sysfs.c')
-rw-r--r--drivers/pci/pci-sysfs.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
index 74508c63bd47..99b5f83d2468 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -411,7 +411,7 @@ static ssize_t sriov_totalvfs_show(struct device *dev,
411{ 411{
412 struct pci_dev *pdev = to_pci_dev(dev); 412 struct pci_dev *pdev = to_pci_dev(dev);
413 413
414 return sprintf(buf, "%u\n", pdev->sriov->total); 414 return sprintf(buf, "%u\n", pci_sriov_get_totalvfs(pdev));
415} 415}
416 416
417 417
@@ -452,7 +452,7 @@ static ssize_t sriov_numvfs_store(struct device *dev,
452 } 452 }
453 453
454 /* if enabling vf's ... */ 454 /* if enabling vf's ... */
455 total = pdev->sriov->total; 455 total = pci_sriov_get_totalvfs(pdev);
456 /* Requested VFs to enable < totalvfs and none enabled already */ 456 /* Requested VFs to enable < totalvfs and none enabled already */
457 if ((num_vfs > 0) && (num_vfs <= total)) { 457 if ((num_vfs > 0) && (num_vfs <= total)) {
458 if (pdev->sriov->nr_virtfn == 0) { 458 if (pdev->sriov->nr_virtfn == 0) {