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
 
 /**
         * 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.
        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");