Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c24817b6 authored by Ethan Zhao's avatar Ethan Zhao Committed by Jeff Kirsher
Browse files

i40e: use global pci_vfs_assigned() to replace local i40e_vfs_are_assigned()



There is global funcion pci_vfs_assigned(), so use it instead of composing
local one.

Signed-off-by: default avatarEthan Zhao <ethan.kernel@gmail.com>
Tested-by: default avatarSibai Li <sibai.li@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent e966d5c6
Loading
Loading
Loading
Loading
+2 −31
Original line number Diff line number Diff line
@@ -707,35 +707,6 @@ void i40e_reset_vf(struct i40e_vf *vf, bool flr)
	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");