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

Commit 019b9cd4 authored by Jacob Keller's avatar Jacob Keller Committed by Jeff Kirsher
Browse files

i40e: split i40e_get_strings() into smaller functions



Split the statistic strings and private flags strings into their own
separate functions to aid code readability.

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 b8312365
Loading
Loading
Loading
Loading
+100 −83
Original line number Diff line number Diff line
@@ -1787,8 +1787,7 @@ static void i40e_get_ethtool_stats(struct net_device *netdev,
		data[i++] = pf->stats.priority_xon_2_xoff[j];
}

static void i40e_get_strings(struct net_device *netdev, u32 stringset,
			     u8 *data)
static void i40e_get_stat_strings(struct net_device *netdev, u8 *data)
{
	struct i40e_netdev_priv *np = netdev_priv(netdev);
	struct i40e_vsi *vsi = np->vsi;
@@ -1796,12 +1795,6 @@ static void i40e_get_strings(struct net_device *netdev, u32 stringset,
	char *p = (char *)data;
	unsigned int i;

	switch (stringset) {
	case ETH_SS_TEST:
		memcpy(data, i40e_gstrings_test,
		       I40E_TEST_LEN * ETH_GSTRING_LEN);
		break;
	case ETH_SS_STATS:
	for (i = 0; i < I40E_NETDEV_STATS_LEN; i++) {
		snprintf(p, ETH_GSTRING_LEN, "%s",
			 i40e_gstrings_net_stats[i].stat_string);
@@ -1813,13 +1806,13 @@ static void i40e_get_strings(struct net_device *netdev, u32 stringset,
		p += ETH_GSTRING_LEN;
	}
	for (i = 0; i < I40E_MAX_NUM_QUEUES(netdev); i++) {
			snprintf(p, ETH_GSTRING_LEN, "tx-%d.tx_packets", i);
		snprintf(p, ETH_GSTRING_LEN, "tx-%u.tx_packets", i);
		p += ETH_GSTRING_LEN;
			snprintf(p, ETH_GSTRING_LEN, "tx-%d.tx_bytes", i);
		snprintf(p, ETH_GSTRING_LEN, "tx-%u.tx_bytes", i);
		p += ETH_GSTRING_LEN;
			snprintf(p, ETH_GSTRING_LEN, "rx-%d.rx_packets", i);
		snprintf(p, ETH_GSTRING_LEN, "rx-%u.rx_packets", i);
		p += ETH_GSTRING_LEN;
			snprintf(p, ETH_GSTRING_LEN, "rx-%d.rx_bytes", i);
		snprintf(p, ETH_GSTRING_LEN, "rx-%u.rx_bytes", i);
		p += ETH_GSTRING_LEN;
	}
	if (vsi != pf->vsi[pf->lan_vsi] || pf->hw.partition_id != 1)
@@ -1844,6 +1837,7 @@ static void i40e_get_strings(struct net_device *netdev, u32 stringset,
			 "veb.tc_%u_rx_bytes", i);
		p += ETH_GSTRING_LEN;
	}

	for (i = 0; i < I40E_GLOBAL_STATS_LEN; i++) {
		snprintf(p, ETH_GSTRING_LEN, "port.%s",
			 i40e_gstrings_stats[i].stat_string);
@@ -1851,40 +1845,63 @@ static void i40e_get_strings(struct net_device *netdev, u32 stringset,
	}
	for (i = 0; i < I40E_MAX_USER_PRIORITY; i++) {
		snprintf(p, ETH_GSTRING_LEN,
				 "port.tx_priority_%d_xon", i);
			 "port.tx_priority_%u_xon", i);
		p += ETH_GSTRING_LEN;
		snprintf(p, ETH_GSTRING_LEN,
				 "port.tx_priority_%d_xoff", i);
			 "port.tx_priority_%u_xoff", i);
		p += ETH_GSTRING_LEN;
	}
	for (i = 0; i < I40E_MAX_USER_PRIORITY; i++) {
		snprintf(p, ETH_GSTRING_LEN,
				 "port.rx_priority_%d_xon", i);
			 "port.rx_priority_%u_xon", i);
		p += ETH_GSTRING_LEN;
		snprintf(p, ETH_GSTRING_LEN,
				 "port.rx_priority_%d_xoff", i);
			 "port.rx_priority_%u_xoff", i);
		p += ETH_GSTRING_LEN;
	}
	for (i = 0; i < I40E_MAX_USER_PRIORITY; i++) {
		snprintf(p, ETH_GSTRING_LEN,
				 "port.rx_priority_%d_xon_2_xoff", i);
			 "port.rx_priority_%u_xon_2_xoff", i);
		p += ETH_GSTRING_LEN;
	}
	/* BUG_ON(p - data != I40E_STATS_LEN * ETH_GSTRING_LEN); */
		break;
	case ETH_SS_PRIV_FLAGS:
}

static void i40e_get_priv_flag_strings(struct net_device *netdev, u8 *data)
{
	struct i40e_netdev_priv *np = netdev_priv(netdev);
	struct i40e_vsi *vsi = np->vsi;
	struct i40e_pf *pf = vsi->back;
	char *p = (char *)data;
	unsigned int i;

	for (i = 0; i < I40E_PRIV_FLAGS_STR_LEN; i++) {
		snprintf(p, ETH_GSTRING_LEN, "%s",
			 i40e_gstrings_priv_flags[i].flag_string);
		p += ETH_GSTRING_LEN;
	}
	if (pf->hw.pf_id != 0)
			break;
		return;
	for (i = 0; i < I40E_GL_PRIV_FLAGS_STR_LEN; i++) {
		snprintf(p, ETH_GSTRING_LEN, "%s",
			 i40e_gl_gstrings_priv_flags[i].flag_string);
		p += ETH_GSTRING_LEN;
	}
}

static void i40e_get_strings(struct net_device *netdev, u32 stringset,
			     u8 *data)
{
	switch (stringset) {
	case ETH_SS_TEST:
		memcpy(data, i40e_gstrings_test,
		       I40E_TEST_LEN * ETH_GSTRING_LEN);
		break;
	case ETH_SS_STATS:
		i40e_get_stat_strings(netdev, data);
		break;
	case ETH_SS_PRIV_FLAGS:
		i40e_get_priv_flag_strings(netdev, data);
		break;
	default:
		break;