PCI/IOV: Add flag so platforms can skip VF scanning
authorSebastian Ott <sebott@linux.ibm.com>
Fri, 21 Dec 2018 14:14:19 +0000 (15:14 +0100)
committerBjorn Helgaas <bhelgaas@google.com>
Wed, 2 Jan 2019 01:04:37 +0000 (19:04 -0600)
Provide a flag to skip scanning for new VFs after SR-IOV enablement.  This
can be set by implementations for which the VFs are already reported by
other means.

Signed-off-by: Sebastian Ott <sebott@linux.ibm.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
drivers/pci/iov.c
include/linux/pci.h

index 408db23..3aa115e 100644 (file)
@@ -257,6 +257,9 @@ static int sriov_add_vfs(struct pci_dev *dev, u16 num_vfs)
        unsigned int i;
        int rc;
 
+       if (dev->no_vf_scan)
+               return 0;
+
        for (i = 0; i < num_vfs; i++) {
                rc = pci_iov_add_virtfn(dev, i);
                if (rc)
@@ -385,6 +388,9 @@ static void sriov_del_vfs(struct pci_dev *dev)
        struct pci_sriov *iov = dev->sriov;
        int i;
 
+       if (dev->no_vf_scan)
+               return;
+
        for (i = 0; i < iov->num_VFs; i++)
                pci_iov_remove_virtfn(dev, i);
 }
index 11c71c4..f9bc765 100644 (file)
@@ -405,6 +405,7 @@ struct pci_dev {
        unsigned int    non_compliant_bars:1;   /* Broken BARs; ignore them */
        unsigned int    is_probed:1;            /* Device probing in progress */
        unsigned int    link_active_reporting:1;/* Device capable of reporting link active */
+       unsigned int    no_vf_scan:1;           /* Don't scan for VFs after IOV enablement */
        pci_dev_flags_t dev_flags;
        atomic_t        enable_cnt;     /* pci_enable_device has been called */