mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
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: Jacob Keller <jacob.e.keller@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
e691b771aa
commit
0ded9c61c1
@ -1658,6 +1658,23 @@ static int i40e_set_ringparam(struct net_device *netdev,
|
|||||||
return err;
|
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)
|
static int i40e_get_sset_count(struct net_device *netdev, int sset)
|
||||||
{
|
{
|
||||||
struct i40e_netdev_priv *np = netdev_priv(netdev);
|
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:
|
case ETH_SS_TEST:
|
||||||
return I40E_TEST_LEN;
|
return I40E_TEST_LEN;
|
||||||
case ETH_SS_STATS:
|
case ETH_SS_STATS:
|
||||||
if (vsi == pf->vsi[pf->lan_vsi] && pf->hw.partition_id == 1) {
|
return i40e_get_stats_count(netdev);
|
||||||
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);
|
|
||||||
}
|
|
||||||
case ETH_SS_PRIV_FLAGS:
|
case ETH_SS_PRIV_FLAGS:
|
||||||
return I40E_PRIV_FLAGS_STR_LEN +
|
return I40E_PRIV_FLAGS_STR_LEN +
|
||||||
(pf->hw.pf_id == 0 ? I40E_GL_PRIV_FLAGS_STR_LEN : 0);
|
(pf->hw.pf_id == 0 ? I40E_GL_PRIV_FLAGS_STR_LEN : 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user