Commit 4ef21c83 authored by Jacob Keller's avatar Jacob Keller Committed by Tony Nguyen
Browse files

ice: use pci_iov_vf_id() to get VF ID



The ice_sriov_set_msix_vec_count() obtains the VF device ID in a strange
way by iterating over the possible VF IDs and calling
pci_iov_virtfn_devfn to calculate the device and function combos and
compare them to the pdev->devfn.

This is unnecessary. The pci_iov_vf_id() helper already exists which does
the reverse calculation of pci_iov_virtfn_devfn(), which is much simpler
and avoids the loop construction. Use this instead.

Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
Reviewed-by: default avatarPrzemek Kitszel <przemyslaw.kitszel@intel.com>
Tested-by: default avatarRafal Romanowski <rafal.romanowski@intel.com>
Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
parent 066c2715
Loading
Loading
Loading
Loading
+3 −9
Original line number Diff line number Diff line
@@ -952,17 +952,11 @@ int ice_sriov_set_msix_vec_count(struct pci_dev *vf_dev, int msix_vec_count)
	if (msix_vec_count < ICE_MIN_INTR_PER_VF)
		return -EINVAL;

	/* Transition of PCI VF function number to function_id */
	for (id = 0; id < pci_num_vf(pdev); id++) {
		if (vf_dev->devfn == pci_iov_virtfn_devfn(pdev, id))
			break;
	}

	if (id == pci_num_vf(pdev))
		return -ENOENT;
	id = pci_iov_vf_id(vf_dev);
	if (id < 0)
		return id;

	vf = ice_get_vf_by_id(pf, id);

	if (!vf)
		return -ENOENT;