i40e: use global pci_vfs_assigned() to replace local i40e_vfs_are_assigned()
authorEthan Zhao <ethan.zhao@oracle.com>
Tue, 22 Jul 2014 18:36:43 +0000 (18:36 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Thu, 4 Sep 2014 08:38:31 +0000 (01:38 -0700)
There is global funcion pci_vfs_assigned(), so use it instead of composing
local one.

Signed-off-by: Ethan Zhao <ethan.kernel@gmail.com>
Tested-by: Sibai Li <sibai.li@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c

index aeae5f2..4eeed26 100644 (file)
@@ -707,35 +707,6 @@ complete_reset:
        wr32(hw, I40E_VFGEN_RSTAT1(vf->vf_id), I40E_VFR_VFACTIVE);
        i40e_flush(hw);
 }
-
-/**
- * i40e_vfs_are_assigned
- * @pf: pointer to the pf structure
- *
- * Determine if any VFs are assigned to VMs
- **/
-static bool i40e_vfs_are_assigned(struct i40e_pf *pf)
-{
-       struct pci_dev *pdev = pf->pdev;
-       struct pci_dev *vfdev;
-
-       /* loop through all the VFs to see if we own any that are assigned */
-       vfdev = pci_get_device(PCI_VENDOR_ID_INTEL, I40E_DEV_ID_VF , NULL);
-       while (vfdev) {
-               /* if we don't own it we don't care */
-               if (vfdev->is_virtfn && pci_physfn(vfdev) == pdev) {
-                       /* if it is assigned we cannot release it */
-                       if (vfdev->dev_flags & PCI_DEV_FLAGS_ASSIGNED)
-                               return true;
-               }
-
-               vfdev = pci_get_device(PCI_VENDOR_ID_INTEL,
-                                      I40E_DEV_ID_VF,
-                                      vfdev);
-       }
-
-       return false;
-}
 #ifdef CONFIG_PCI_IOV
 
 /**
@@ -843,7 +814,7 @@ void i40e_free_vfs(struct i40e_pf *pf)
         * assigned. Setting the number of VFs to 0 through sysfs is caught
         * before this function ever gets called.
         */
-       if (!i40e_vfs_are_assigned(pf)) {
+       if (!pci_vfs_assigned(pf->pdev)) {
                pci_disable_sriov(pf->pdev);
                /* Acknowledge VFLR for all VFS. Without this, VFs will fail to
                 * work correctly when SR-IOV gets re-enabled.
@@ -980,7 +951,7 @@ int i40e_pci_sriov_configure(struct pci_dev *pdev, int num_vfs)
        if (num_vfs)
                return i40e_pci_sriov_enable(pdev, num_vfs);
 
-       if (!i40e_vfs_are_assigned(pf)) {
+       if (!pci_vfs_assigned(pf->pdev)) {
                i40e_free_vfs(pf);
        } else {
                dev_warn(&pdev->dev, "Unable to free VFs because some are assigned to VMs.\n");