summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--drivers/pci/iov.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/pci/iov.c b/drivers/pci/iov.c
index ee0ebff103a4..0cdb2d1e1a20 100644
--- a/drivers/pci/iov.c
+++ b/drivers/pci/iov.c
@@ -399,10 +399,6 @@ static int sriov_init(struct pci_dev *dev, int pos)
 		ssleep(1);
 	}
 
-	pci_read_config_word(dev, pos + PCI_SRIOV_TOTAL_VF, &total);
-	if (!total)
-		return 0;
-
 	ctrl = 0;
 	list_for_each_entry(pdev, &dev->bus->devices, bus_list)
 		if (pdev->is_physfn)
@@ -420,6 +416,10 @@ found:
 	if (!offset || (total > 1 && !stride))
 		return -EIO;
 
+	pci_read_config_word(dev, pos + PCI_SRIOV_TOTAL_VF, &total);
+	if (!total)
+		return 0;
+
 	pci_read_config_dword(dev, pos + PCI_SRIOV_SUP_PGSIZE, &pgsz);
 	i = PAGE_SHIFT > 12 ? PAGE_SHIFT - 12 : 0;
 	pgsz &= ~((1 << i) - 1);