Skip to content

Commit 634287b

Browse files
Jakub Kicinskidavem330
authored andcommitted
nfp: add helper for printing ethtool strings
Add a helper for printing ethtool strings and advancing the pointer correctly. Signed-off-by: Jakub Kicinski <[email protected]> Reviewed-by: Simon Horman <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 1cfcc97 commit 634287b

File tree

1 file changed

+32
-33
lines changed

1 file changed

+32
-33
lines changed

drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c

Lines changed: 32 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -335,53 +335,52 @@ static int nfp_net_set_ringparam(struct net_device *netdev,
335335
return nfp_net_set_ring_size(nn, rxd_cnt, txd_cnt);
336336
}
337337

338+
static __printf(2, 3) u8 *nfp_pr_et(u8 *data, const char *fmt, ...)
339+
{
340+
va_list args;
341+
342+
va_start(args, fmt);
343+
vsnprintf(data, ETH_GSTRING_LEN, fmt, args);
344+
va_end(args);
345+
346+
return data + ETH_GSTRING_LEN;
347+
}
348+
338349
static void nfp_net_get_strings(struct net_device *netdev,
339350
u32 stringset, u8 *data)
340351
{
341352
struct nfp_net *nn = netdev_priv(netdev);
342-
u8 *p = data;
343353
int i;
344354

345355
switch (stringset) {
346356
case ETH_SS_STATS:
347-
for (i = 0; i < NN_ET_GLOBAL_STATS_LEN; i++) {
348-
memcpy(p, nfp_net_et_stats[i].name, ETH_GSTRING_LEN);
349-
p += ETH_GSTRING_LEN;
350-
}
357+
for (i = 0; i < NN_ET_GLOBAL_STATS_LEN; i++)
358+
data = nfp_pr_et(data, nfp_net_et_stats[i].name);
359+
351360
for (i = 0; i < nn->dp.num_r_vecs; i++) {
352-
sprintf(p, "rvec_%u_rx_pkts", i);
353-
p += ETH_GSTRING_LEN;
354-
sprintf(p, "rvec_%u_tx_pkts", i);
355-
p += ETH_GSTRING_LEN;
356-
sprintf(p, "rvec_%u_tx_busy", i);
357-
p += ETH_GSTRING_LEN;
361+
data = nfp_pr_et(data, "rvec_%u_rx_pkts", i);
362+
data = nfp_pr_et(data, "rvec_%u_tx_pkts", i);
363+
data = nfp_pr_et(data, "rvec_%u_tx_busy", i);
358364
}
359-
strncpy(p, "hw_rx_csum_ok", ETH_GSTRING_LEN);
360-
p += ETH_GSTRING_LEN;
361-
strncpy(p, "hw_rx_csum_inner_ok", ETH_GSTRING_LEN);
362-
p += ETH_GSTRING_LEN;
363-
strncpy(p, "hw_rx_csum_err", ETH_GSTRING_LEN);
364-
p += ETH_GSTRING_LEN;
365-
strncpy(p, "hw_tx_csum", ETH_GSTRING_LEN);
366-
p += ETH_GSTRING_LEN;
367-
strncpy(p, "hw_tx_inner_csum", ETH_GSTRING_LEN);
368-
p += ETH_GSTRING_LEN;
369-
strncpy(p, "tx_gather", ETH_GSTRING_LEN);
370-
p += ETH_GSTRING_LEN;
371-
strncpy(p, "tx_lso", ETH_GSTRING_LEN);
372-
p += ETH_GSTRING_LEN;
365+
366+
data = nfp_pr_et(data, "hw_rx_csum_ok");
367+
data = nfp_pr_et(data, "hw_rx_csum_inner_ok");
368+
data = nfp_pr_et(data, "hw_rx_csum_err");
369+
data = nfp_pr_et(data, "hw_tx_csum");
370+
data = nfp_pr_et(data, "hw_tx_inner_csum");
371+
data = nfp_pr_et(data, "tx_gather");
372+
data = nfp_pr_et(data, "tx_lso");
373+
373374
for (i = 0; i < nn->dp.num_tx_rings; i++) {
374-
sprintf(p, "txq_%u_pkts", i);
375-
p += ETH_GSTRING_LEN;
376-
sprintf(p, "txq_%u_bytes", i);
377-
p += ETH_GSTRING_LEN;
375+
data = nfp_pr_et(data, "txq_%u_pkts", i);
376+
data = nfp_pr_et(data, "txq_%u_bytes", i);
378377
}
378+
379379
for (i = 0; i < nn->dp.num_rx_rings; i++) {
380-
sprintf(p, "rxq_%u_pkts", i);
381-
p += ETH_GSTRING_LEN;
382-
sprintf(p, "rxq_%u_bytes", i);
383-
p += ETH_GSTRING_LEN;
380+
data = nfp_pr_et(data, "rxq_%u_pkts", i);
381+
data = nfp_pr_et(data, "rxq_%u_bytes", i);
384382
}
383+
385384
break;
386385
}
387386
}

0 commit comments

Comments
 (0)