Skip to content

Commit 019b9cd

Browse files
jacob-kellerJeff Kirsher
authored andcommitted
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: 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>
1 parent b831236 commit 019b9cd

File tree

1 file changed

+100
-83
lines changed

1 file changed

+100
-83
lines changed

drivers/net/ethernet/intel/i40e/i40e_ethtool.c

Lines changed: 100 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -1787,104 +1787,121 @@ static void i40e_get_ethtool_stats(struct net_device *netdev,
17871787
data[i++] = pf->stats.priority_xon_2_xoff[j];
17881788
}
17891789

1790-
static void i40e_get_strings(struct net_device *netdev, u32 stringset,
1791-
u8 *data)
1790+
static void i40e_get_stat_strings(struct net_device *netdev, u8 *data)
17921791
{
17931792
struct i40e_netdev_priv *np = netdev_priv(netdev);
17941793
struct i40e_vsi *vsi = np->vsi;
17951794
struct i40e_pf *pf = vsi->back;
17961795
char *p = (char *)data;
17971796
unsigned int i;
17981797

1798+
for (i = 0; i < I40E_NETDEV_STATS_LEN; i++) {
1799+
snprintf(p, ETH_GSTRING_LEN, "%s",
1800+
i40e_gstrings_net_stats[i].stat_string);
1801+
p += ETH_GSTRING_LEN;
1802+
}
1803+
for (i = 0; i < I40E_MISC_STATS_LEN; i++) {
1804+
snprintf(p, ETH_GSTRING_LEN, "%s",
1805+
i40e_gstrings_misc_stats[i].stat_string);
1806+
p += ETH_GSTRING_LEN;
1807+
}
1808+
for (i = 0; i < I40E_MAX_NUM_QUEUES(netdev); i++) {
1809+
snprintf(p, ETH_GSTRING_LEN, "tx-%u.tx_packets", i);
1810+
p += ETH_GSTRING_LEN;
1811+
snprintf(p, ETH_GSTRING_LEN, "tx-%u.tx_bytes", i);
1812+
p += ETH_GSTRING_LEN;
1813+
snprintf(p, ETH_GSTRING_LEN, "rx-%u.rx_packets", i);
1814+
p += ETH_GSTRING_LEN;
1815+
snprintf(p, ETH_GSTRING_LEN, "rx-%u.rx_bytes", i);
1816+
p += ETH_GSTRING_LEN;
1817+
}
1818+
if (vsi != pf->vsi[pf->lan_vsi] || pf->hw.partition_id != 1)
1819+
return;
1820+
1821+
for (i = 0; i < I40E_VEB_STATS_LEN; i++) {
1822+
snprintf(p, ETH_GSTRING_LEN, "veb.%s",
1823+
i40e_gstrings_veb_stats[i].stat_string);
1824+
p += ETH_GSTRING_LEN;
1825+
}
1826+
for (i = 0; i < I40E_MAX_TRAFFIC_CLASS; i++) {
1827+
snprintf(p, ETH_GSTRING_LEN,
1828+
"veb.tc_%u_tx_packets", i);
1829+
p += ETH_GSTRING_LEN;
1830+
snprintf(p, ETH_GSTRING_LEN,
1831+
"veb.tc_%u_tx_bytes", i);
1832+
p += ETH_GSTRING_LEN;
1833+
snprintf(p, ETH_GSTRING_LEN,
1834+
"veb.tc_%u_rx_packets", i);
1835+
p += ETH_GSTRING_LEN;
1836+
snprintf(p, ETH_GSTRING_LEN,
1837+
"veb.tc_%u_rx_bytes", i);
1838+
p += ETH_GSTRING_LEN;
1839+
}
1840+
1841+
for (i = 0; i < I40E_GLOBAL_STATS_LEN; i++) {
1842+
snprintf(p, ETH_GSTRING_LEN, "port.%s",
1843+
i40e_gstrings_stats[i].stat_string);
1844+
p += ETH_GSTRING_LEN;
1845+
}
1846+
for (i = 0; i < I40E_MAX_USER_PRIORITY; i++) {
1847+
snprintf(p, ETH_GSTRING_LEN,
1848+
"port.tx_priority_%u_xon", i);
1849+
p += ETH_GSTRING_LEN;
1850+
snprintf(p, ETH_GSTRING_LEN,
1851+
"port.tx_priority_%u_xoff", i);
1852+
p += ETH_GSTRING_LEN;
1853+
}
1854+
for (i = 0; i < I40E_MAX_USER_PRIORITY; i++) {
1855+
snprintf(p, ETH_GSTRING_LEN,
1856+
"port.rx_priority_%u_xon", i);
1857+
p += ETH_GSTRING_LEN;
1858+
snprintf(p, ETH_GSTRING_LEN,
1859+
"port.rx_priority_%u_xoff", i);
1860+
p += ETH_GSTRING_LEN;
1861+
}
1862+
for (i = 0; i < I40E_MAX_USER_PRIORITY; i++) {
1863+
snprintf(p, ETH_GSTRING_LEN,
1864+
"port.rx_priority_%u_xon_2_xoff", i);
1865+
p += ETH_GSTRING_LEN;
1866+
}
1867+
/* BUG_ON(p - data != I40E_STATS_LEN * ETH_GSTRING_LEN); */
1868+
}
1869+
1870+
static void i40e_get_priv_flag_strings(struct net_device *netdev, u8 *data)
1871+
{
1872+
struct i40e_netdev_priv *np = netdev_priv(netdev);
1873+
struct i40e_vsi *vsi = np->vsi;
1874+
struct i40e_pf *pf = vsi->back;
1875+
char *p = (char *)data;
1876+
unsigned int i;
1877+
1878+
for (i = 0; i < I40E_PRIV_FLAGS_STR_LEN; i++) {
1879+
snprintf(p, ETH_GSTRING_LEN, "%s",
1880+
i40e_gstrings_priv_flags[i].flag_string);
1881+
p += ETH_GSTRING_LEN;
1882+
}
1883+
if (pf->hw.pf_id != 0)
1884+
return;
1885+
for (i = 0; i < I40E_GL_PRIV_FLAGS_STR_LEN; i++) {
1886+
snprintf(p, ETH_GSTRING_LEN, "%s",
1887+
i40e_gl_gstrings_priv_flags[i].flag_string);
1888+
p += ETH_GSTRING_LEN;
1889+
}
1890+
}
1891+
1892+
static void i40e_get_strings(struct net_device *netdev, u32 stringset,
1893+
u8 *data)
1894+
{
17991895
switch (stringset) {
18001896
case ETH_SS_TEST:
18011897
memcpy(data, i40e_gstrings_test,
18021898
I40E_TEST_LEN * ETH_GSTRING_LEN);
18031899
break;
18041900
case ETH_SS_STATS:
1805-
for (i = 0; i < I40E_NETDEV_STATS_LEN; i++) {
1806-
snprintf(p, ETH_GSTRING_LEN, "%s",
1807-
i40e_gstrings_net_stats[i].stat_string);
1808-
p += ETH_GSTRING_LEN;
1809-
}
1810-
for (i = 0; i < I40E_MISC_STATS_LEN; i++) {
1811-
snprintf(p, ETH_GSTRING_LEN, "%s",
1812-
i40e_gstrings_misc_stats[i].stat_string);
1813-
p += ETH_GSTRING_LEN;
1814-
}
1815-
for (i = 0; i < I40E_MAX_NUM_QUEUES(netdev); i++) {
1816-
snprintf(p, ETH_GSTRING_LEN, "tx-%d.tx_packets", i);
1817-
p += ETH_GSTRING_LEN;
1818-
snprintf(p, ETH_GSTRING_LEN, "tx-%d.tx_bytes", i);
1819-
p += ETH_GSTRING_LEN;
1820-
snprintf(p, ETH_GSTRING_LEN, "rx-%d.rx_packets", i);
1821-
p += ETH_GSTRING_LEN;
1822-
snprintf(p, ETH_GSTRING_LEN, "rx-%d.rx_bytes", i);
1823-
p += ETH_GSTRING_LEN;
1824-
}
1825-
if (vsi != pf->vsi[pf->lan_vsi] || pf->hw.partition_id != 1)
1826-
return;
1827-
1828-
for (i = 0; i < I40E_VEB_STATS_LEN; i++) {
1829-
snprintf(p, ETH_GSTRING_LEN, "veb.%s",
1830-
i40e_gstrings_veb_stats[i].stat_string);
1831-
p += ETH_GSTRING_LEN;
1832-
}
1833-
for (i = 0; i < I40E_MAX_TRAFFIC_CLASS; i++) {
1834-
snprintf(p, ETH_GSTRING_LEN,
1835-
"veb.tc_%u_tx_packets", i);
1836-
p += ETH_GSTRING_LEN;
1837-
snprintf(p, ETH_GSTRING_LEN,
1838-
"veb.tc_%u_tx_bytes", i);
1839-
p += ETH_GSTRING_LEN;
1840-
snprintf(p, ETH_GSTRING_LEN,
1841-
"veb.tc_%u_rx_packets", i);
1842-
p += ETH_GSTRING_LEN;
1843-
snprintf(p, ETH_GSTRING_LEN,
1844-
"veb.tc_%u_rx_bytes", i);
1845-
p += ETH_GSTRING_LEN;
1846-
}
1847-
for (i = 0; i < I40E_GLOBAL_STATS_LEN; i++) {
1848-
snprintf(p, ETH_GSTRING_LEN, "port.%s",
1849-
i40e_gstrings_stats[i].stat_string);
1850-
p += ETH_GSTRING_LEN;
1851-
}
1852-
for (i = 0; i < I40E_MAX_USER_PRIORITY; i++) {
1853-
snprintf(p, ETH_GSTRING_LEN,
1854-
"port.tx_priority_%d_xon", i);
1855-
p += ETH_GSTRING_LEN;
1856-
snprintf(p, ETH_GSTRING_LEN,
1857-
"port.tx_priority_%d_xoff", i);
1858-
p += ETH_GSTRING_LEN;
1859-
}
1860-
for (i = 0; i < I40E_MAX_USER_PRIORITY; i++) {
1861-
snprintf(p, ETH_GSTRING_LEN,
1862-
"port.rx_priority_%d_xon", i);
1863-
p += ETH_GSTRING_LEN;
1864-
snprintf(p, ETH_GSTRING_LEN,
1865-
"port.rx_priority_%d_xoff", i);
1866-
p += ETH_GSTRING_LEN;
1867-
}
1868-
for (i = 0; i < I40E_MAX_USER_PRIORITY; i++) {
1869-
snprintf(p, ETH_GSTRING_LEN,
1870-
"port.rx_priority_%d_xon_2_xoff", i);
1871-
p += ETH_GSTRING_LEN;
1872-
}
1873-
/* BUG_ON(p - data != I40E_STATS_LEN * ETH_GSTRING_LEN); */
1901+
i40e_get_stat_strings(netdev, data);
18741902
break;
18751903
case ETH_SS_PRIV_FLAGS:
1876-
for (i = 0; i < I40E_PRIV_FLAGS_STR_LEN; i++) {
1877-
snprintf(p, ETH_GSTRING_LEN, "%s",
1878-
i40e_gstrings_priv_flags[i].flag_string);
1879-
p += ETH_GSTRING_LEN;
1880-
}
1881-
if (pf->hw.pf_id != 0)
1882-
break;
1883-
for (i = 0; i < I40E_GL_PRIV_FLAGS_STR_LEN; i++) {
1884-
snprintf(p, ETH_GSTRING_LEN, "%s",
1885-
i40e_gl_gstrings_priv_flags[i].flag_string);
1886-
p += ETH_GSTRING_LEN;
1887-
}
1904+
i40e_get_priv_flag_strings(netdev, data);
18881905
break;
18891906
default:
18901907
break;

0 commit comments

Comments
 (0)