mirror of
https://github.com/torvalds/linux.git
synced 2024-11-25 13:41:51 +00:00
net: bnx2x: use ethtool string helpers
The latter is the preferred way to copy ethtool strings. Avoids manually incrementing the pointer. Cleans up the code quite well. Signed-off-by: Rosen Penev <rosenp@gmail.com> Link: https://patch.msgid.link/20241104202326.78418-1-rosenp@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
720d331432
commit
4069dcb7da
@ -39,34 +39,34 @@ static const struct {
|
||||
int size;
|
||||
char string[ETH_GSTRING_LEN];
|
||||
} bnx2x_q_stats_arr[] = {
|
||||
/* 1 */ { Q_STATS_OFFSET32(total_bytes_received_hi), 8, "[%s]: rx_bytes" },
|
||||
/* 1 */ { Q_STATS_OFFSET32(total_bytes_received_hi), 8, "[%d]: rx_bytes" },
|
||||
{ Q_STATS_OFFSET32(total_unicast_packets_received_hi),
|
||||
8, "[%s]: rx_ucast_packets" },
|
||||
8, "[%d]: rx_ucast_packets" },
|
||||
{ Q_STATS_OFFSET32(total_multicast_packets_received_hi),
|
||||
8, "[%s]: rx_mcast_packets" },
|
||||
8, "[%d]: rx_mcast_packets" },
|
||||
{ Q_STATS_OFFSET32(total_broadcast_packets_received_hi),
|
||||
8, "[%s]: rx_bcast_packets" },
|
||||
{ Q_STATS_OFFSET32(no_buff_discard_hi), 8, "[%s]: rx_discards" },
|
||||
8, "[%d]: rx_bcast_packets" },
|
||||
{ Q_STATS_OFFSET32(no_buff_discard_hi), 8, "[%d]: rx_discards" },
|
||||
{ Q_STATS_OFFSET32(rx_err_discard_pkt),
|
||||
4, "[%s]: rx_phy_ip_err_discards"},
|
||||
4, "[%d]: rx_phy_ip_err_discards"},
|
||||
{ Q_STATS_OFFSET32(rx_skb_alloc_failed),
|
||||
4, "[%s]: rx_skb_alloc_discard" },
|
||||
{ Q_STATS_OFFSET32(hw_csum_err), 4, "[%s]: rx_csum_offload_errors" },
|
||||
{ Q_STATS_OFFSET32(driver_xoff), 4, "[%s]: tx_exhaustion_events" },
|
||||
{ Q_STATS_OFFSET32(total_bytes_transmitted_hi), 8, "[%s]: tx_bytes" },
|
||||
4, "[%d]: rx_skb_alloc_discard" },
|
||||
{ Q_STATS_OFFSET32(hw_csum_err), 4, "[%d]: rx_csum_offload_errors" },
|
||||
{ Q_STATS_OFFSET32(driver_xoff), 4, "[%d]: tx_exhaustion_events" },
|
||||
{ Q_STATS_OFFSET32(total_bytes_transmitted_hi), 8, "[%d]: tx_bytes" },
|
||||
/* 10 */{ Q_STATS_OFFSET32(total_unicast_packets_transmitted_hi),
|
||||
8, "[%s]: tx_ucast_packets" },
|
||||
8, "[%d]: tx_ucast_packets" },
|
||||
{ Q_STATS_OFFSET32(total_multicast_packets_transmitted_hi),
|
||||
8, "[%s]: tx_mcast_packets" },
|
||||
8, "[%d]: tx_mcast_packets" },
|
||||
{ Q_STATS_OFFSET32(total_broadcast_packets_transmitted_hi),
|
||||
8, "[%s]: tx_bcast_packets" },
|
||||
8, "[%d]: tx_bcast_packets" },
|
||||
{ Q_STATS_OFFSET32(total_tpa_aggregations_hi),
|
||||
8, "[%s]: tpa_aggregations" },
|
||||
8, "[%d]: tpa_aggregations" },
|
||||
{ Q_STATS_OFFSET32(total_tpa_aggregated_frames_hi),
|
||||
8, "[%s]: tpa_aggregated_frames"},
|
||||
{ Q_STATS_OFFSET32(total_tpa_bytes_hi), 8, "[%s]: tpa_bytes"},
|
||||
8, "[%d]: tpa_aggregated_frames"},
|
||||
{ Q_STATS_OFFSET32(total_tpa_bytes_hi), 8, "[%d]: tpa_bytes"},
|
||||
{ Q_STATS_OFFSET32(driver_filtered_tx_pkt),
|
||||
4, "[%s]: driver_filtered_tx_pkt" }
|
||||
4, "[%d]: driver_filtered_tx_pkt" }
|
||||
};
|
||||
|
||||
#define BNX2X_NUM_Q_STATS ARRAY_SIZE(bnx2x_q_stats_arr)
|
||||
@ -3184,49 +3184,43 @@ static u32 bnx2x_get_private_flags(struct net_device *dev)
|
||||
static void bnx2x_get_strings(struct net_device *dev, u32 stringset, u8 *buf)
|
||||
{
|
||||
struct bnx2x *bp = netdev_priv(dev);
|
||||
int i, j, k, start;
|
||||
char queue_name[MAX_QUEUE_NAME_LEN+1];
|
||||
const char *str;
|
||||
int i, j, start;
|
||||
|
||||
switch (stringset) {
|
||||
case ETH_SS_STATS:
|
||||
k = 0;
|
||||
if (is_multi(bp)) {
|
||||
for_each_eth_queue(bp, i) {
|
||||
memset(queue_name, 0, sizeof(queue_name));
|
||||
snprintf(queue_name, sizeof(queue_name),
|
||||
"%d", i);
|
||||
for (j = 0; j < BNX2X_NUM_Q_STATS; j++)
|
||||
snprintf(buf + (k + j)*ETH_GSTRING_LEN,
|
||||
ETH_GSTRING_LEN,
|
||||
bnx2x_q_stats_arr[j].string,
|
||||
queue_name);
|
||||
k += BNX2X_NUM_Q_STATS;
|
||||
for (j = 0; j < BNX2X_NUM_Q_STATS; j++) {
|
||||
str = bnx2x_q_stats_arr[j].string;
|
||||
ethtool_sprintf(&buf, str, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0, j = 0; i < BNX2X_NUM_STATS; i++) {
|
||||
for (i = 0; i < BNX2X_NUM_STATS; i++) {
|
||||
if (HIDE_PORT_STAT(bp) && IS_PORT_STAT(i))
|
||||
continue;
|
||||
strcpy(buf + (k + j)*ETH_GSTRING_LEN,
|
||||
bnx2x_stats_arr[i].string);
|
||||
j++;
|
||||
ethtool_puts(&buf, bnx2x_stats_arr[i].string);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case ETH_SS_TEST:
|
||||
if (IS_VF(bp))
|
||||
break;
|
||||
/* First 4 tests cannot be done in MF mode */
|
||||
if (!IS_MF(bp))
|
||||
start = 0;
|
||||
else
|
||||
start = 4;
|
||||
memcpy(buf, bnx2x_tests_str_arr + start,
|
||||
ETH_GSTRING_LEN * BNX2X_NUM_TESTS(bp));
|
||||
for (i = start; i < BNX2X_NUM_TESTS_SF; i++)
|
||||
ethtool_puts(&buf, bnx2x_tests_str_arr[i]);
|
||||
break;
|
||||
|
||||
case ETH_SS_PRIV_FLAGS:
|
||||
memcpy(buf, bnx2x_private_arr,
|
||||
ETH_GSTRING_LEN * BNX2X_PRI_FLAG_LEN);
|
||||
for (i = 0; i < BNX2X_PRI_FLAG_LEN; i++)
|
||||
ethtool_puts(&buf, bnx2x_private_arr[i]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user