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

Commit 0ded9c61 authored by Jacob Keller's avatar Jacob Keller Committed by Jeff Kirsher
Browse files

i40e: calculate ethtool stats size in a separate function



Use a separate function to calculate the number of stats for
a particular device. This helps reduce the clutter in
i40e_get_sset_count().

Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent e691b771
Loading
Loading
Loading
Loading
+18 −10
Original line number Diff line number Diff line
@@ -1658,6 +1658,23 @@ static int i40e_set_ringparam(struct net_device *netdev,
	return err;
}

static int i40e_get_stats_count(struct net_device *netdev)
{
	struct i40e_netdev_priv *np = netdev_priv(netdev);
	struct i40e_vsi *vsi = np->vsi;
	struct i40e_pf *pf = vsi->back;

	if (vsi == pf->vsi[pf->lan_vsi] && pf->hw.partition_id == 1) {
		if (pf->lan_veb != I40E_NO_VEB &&
		    pf->flags & I40E_FLAG_VEB_STATS_ENABLED)
			return I40E_PF_STATS_LEN(netdev) + I40E_VEB_STATS_TOTAL;
		else
			return I40E_PF_STATS_LEN(netdev);
	} else {
		return I40E_VSI_STATS_LEN(netdev);
	}
}

static int i40e_get_sset_count(struct net_device *netdev, int sset)
{
	struct i40e_netdev_priv *np = netdev_priv(netdev);
@@ -1668,16 +1685,7 @@ static int i40e_get_sset_count(struct net_device *netdev, int sset)
	case ETH_SS_TEST:
		return I40E_TEST_LEN;
	case ETH_SS_STATS:
		if (vsi == pf->vsi[pf->lan_vsi] && pf->hw.partition_id == 1) {
			int len = I40E_PF_STATS_LEN(netdev);

			if ((pf->lan_veb != I40E_NO_VEB) &&
			    (pf->flags & I40E_FLAG_VEB_STATS_ENABLED))
				len += I40E_VEB_STATS_TOTAL;
			return len;
		} else {
			return I40E_VSI_STATS_LEN(netdev);
		}
		return i40e_get_stats_count(netdev);
	case ETH_SS_PRIV_FLAGS:
		return I40E_PRIV_FLAGS_STR_LEN +
			(pf->hw.pf_id == 0 ? I40E_GL_PRIV_FLAGS_STR_LEN : 0);