Message ID | 20241029232721.8442-1-rosenp@gmail.com (mailing list archive) |
---|---|
State | New |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: fjes: use ethtool string helpers | expand |
On Tue, Oct 29, 2024 at 4:27 PM Rosen Penev <rosenp@gmail.com> wrote: > > The latter is the preferred way to copy ethtool strings. > > Avoids manually incrementing the pointer. > > Signed-off-by: Rosen Penev <rosenp@gmail.com> > Reviewed-by: Simon Horman <horms@kernel.org> > --- > v2: remove p variable and reduce indentation agh, forgot to put net-next and v2. > drivers/net/fjes/fjes_ethtool.c | 64 ++++++++++++--------------------- > 1 file changed, 23 insertions(+), 41 deletions(-) > > diff --git a/drivers/net/fjes/fjes_ethtool.c b/drivers/net/fjes/fjes_ethtool.c > index 19c99529566b..70c53f33d857 100644 > --- a/drivers/net/fjes/fjes_ethtool.c > +++ b/drivers/net/fjes/fjes_ethtool.c > @@ -87,49 +87,31 @@ static void fjes_get_strings(struct net_device *netdev, > { > struct fjes_adapter *adapter = netdev_priv(netdev); > struct fjes_hw *hw = &adapter->hw; > - u8 *p = data; > int i; > > - switch (stringset) { > - case ETH_SS_STATS: > - for (i = 0; i < ARRAY_SIZE(fjes_gstrings_stats); i++) { > - memcpy(p, fjes_gstrings_stats[i].stat_string, > - ETH_GSTRING_LEN); > - p += ETH_GSTRING_LEN; > - } > - for (i = 0; i < hw->max_epid; i++) { > - if (i == hw->my_epid) > - continue; > - sprintf(p, "ep%u_com_regist_buf_exec", i); > - p += ETH_GSTRING_LEN; > - sprintf(p, "ep%u_com_unregist_buf_exec", i); > - p += ETH_GSTRING_LEN; > - sprintf(p, "ep%u_send_intr_rx", i); > - p += ETH_GSTRING_LEN; > - sprintf(p, "ep%u_send_intr_unshare", i); > - p += ETH_GSTRING_LEN; > - sprintf(p, "ep%u_send_intr_zoneupdate", i); > - p += ETH_GSTRING_LEN; > - sprintf(p, "ep%u_recv_intr_rx", i); > - p += ETH_GSTRING_LEN; > - sprintf(p, "ep%u_recv_intr_unshare", i); > - p += ETH_GSTRING_LEN; > - sprintf(p, "ep%u_recv_intr_stop", i); > - p += ETH_GSTRING_LEN; > - sprintf(p, "ep%u_recv_intr_zoneupdate", i); > - p += ETH_GSTRING_LEN; > - sprintf(p, "ep%u_tx_buffer_full", i); > - p += ETH_GSTRING_LEN; > - sprintf(p, "ep%u_tx_dropped_not_shared", i); > - p += ETH_GSTRING_LEN; > - sprintf(p, "ep%u_tx_dropped_ver_mismatch", i); > - p += ETH_GSTRING_LEN; > - sprintf(p, "ep%u_tx_dropped_buf_size_mismatch", i); > - p += ETH_GSTRING_LEN; > - sprintf(p, "ep%u_tx_dropped_vlanid_mismatch", i); > - p += ETH_GSTRING_LEN; > - } > - break; > + if (stringset != ETH_SS_STATS) > + return; > + > + for (i = 0; i < ARRAY_SIZE(fjes_gstrings_stats); i++) > + ethtool_puts(&data, fjes_gstrings_stats[i].stat_string); > + > + for (i = 0; i < hw->max_epid; i++) { > + if (i == hw->my_epid) > + continue; > + ethtool_sprintf(&data, "ep%u_com_regist_buf_exec", i); > + ethtool_sprintf(&data, "ep%u_com_unregist_buf_exec", i); > + ethtool_sprintf(&data, "ep%u_send_intr_rx", i); > + ethtool_sprintf(&data, "ep%u_send_intr_unshare", i); > + ethtool_sprintf(&data, "ep%u_send_intr_zoneupdate", i); > + ethtool_sprintf(&data, "ep%u_recv_intr_rx", i); > + ethtool_sprintf(&data, "ep%u_recv_intr_unshare", i); > + ethtool_sprintf(&data, "ep%u_recv_intr_stop", i); > + ethtool_sprintf(&data, "ep%u_recv_intr_zoneupdate", i); > + ethtool_sprintf(&data, "ep%u_tx_buffer_full", i); > + ethtool_sprintf(&data, "ep%u_tx_dropped_not_shared", i); > + ethtool_sprintf(&data, "ep%u_tx_dropped_ver_mismatch", i); > + ethtool_sprintf(&data, "ep%u_tx_dropped_buf_size_mismatch", i); > + ethtool_sprintf(&data, "ep%u_tx_dropped_vlanid_mismatch", i); > } > } > > -- > 2.47.0 >
diff --git a/drivers/net/fjes/fjes_ethtool.c b/drivers/net/fjes/fjes_ethtool.c index 19c99529566b..70c53f33d857 100644 --- a/drivers/net/fjes/fjes_ethtool.c +++ b/drivers/net/fjes/fjes_ethtool.c @@ -87,49 +87,31 @@ static void fjes_get_strings(struct net_device *netdev, { struct fjes_adapter *adapter = netdev_priv(netdev); struct fjes_hw *hw = &adapter->hw; - u8 *p = data; int i; - switch (stringset) { - case ETH_SS_STATS: - for (i = 0; i < ARRAY_SIZE(fjes_gstrings_stats); i++) { - memcpy(p, fjes_gstrings_stats[i].stat_string, - ETH_GSTRING_LEN); - p += ETH_GSTRING_LEN; - } - for (i = 0; i < hw->max_epid; i++) { - if (i == hw->my_epid) - continue; - sprintf(p, "ep%u_com_regist_buf_exec", i); - p += ETH_GSTRING_LEN; - sprintf(p, "ep%u_com_unregist_buf_exec", i); - p += ETH_GSTRING_LEN; - sprintf(p, "ep%u_send_intr_rx", i); - p += ETH_GSTRING_LEN; - sprintf(p, "ep%u_send_intr_unshare", i); - p += ETH_GSTRING_LEN; - sprintf(p, "ep%u_send_intr_zoneupdate", i); - p += ETH_GSTRING_LEN; - sprintf(p, "ep%u_recv_intr_rx", i); - p += ETH_GSTRING_LEN; - sprintf(p, "ep%u_recv_intr_unshare", i); - p += ETH_GSTRING_LEN; - sprintf(p, "ep%u_recv_intr_stop", i); - p += ETH_GSTRING_LEN; - sprintf(p, "ep%u_recv_intr_zoneupdate", i); - p += ETH_GSTRING_LEN; - sprintf(p, "ep%u_tx_buffer_full", i); - p += ETH_GSTRING_LEN; - sprintf(p, "ep%u_tx_dropped_not_shared", i); - p += ETH_GSTRING_LEN; - sprintf(p, "ep%u_tx_dropped_ver_mismatch", i); - p += ETH_GSTRING_LEN; - sprintf(p, "ep%u_tx_dropped_buf_size_mismatch", i); - p += ETH_GSTRING_LEN; - sprintf(p, "ep%u_tx_dropped_vlanid_mismatch", i); - p += ETH_GSTRING_LEN; - } - break; + if (stringset != ETH_SS_STATS) + return; + + for (i = 0; i < ARRAY_SIZE(fjes_gstrings_stats); i++) + ethtool_puts(&data, fjes_gstrings_stats[i].stat_string); + + for (i = 0; i < hw->max_epid; i++) { + if (i == hw->my_epid) + continue; + ethtool_sprintf(&data, "ep%u_com_regist_buf_exec", i); + ethtool_sprintf(&data, "ep%u_com_unregist_buf_exec", i); + ethtool_sprintf(&data, "ep%u_send_intr_rx", i); + ethtool_sprintf(&data, "ep%u_send_intr_unshare", i); + ethtool_sprintf(&data, "ep%u_send_intr_zoneupdate", i); + ethtool_sprintf(&data, "ep%u_recv_intr_rx", i); + ethtool_sprintf(&data, "ep%u_recv_intr_unshare", i); + ethtool_sprintf(&data, "ep%u_recv_intr_stop", i); + ethtool_sprintf(&data, "ep%u_recv_intr_zoneupdate", i); + ethtool_sprintf(&data, "ep%u_tx_buffer_full", i); + ethtool_sprintf(&data, "ep%u_tx_dropped_not_shared", i); + ethtool_sprintf(&data, "ep%u_tx_dropped_ver_mismatch", i); + ethtool_sprintf(&data, "ep%u_tx_dropped_buf_size_mismatch", i); + ethtool_sprintf(&data, "ep%u_tx_dropped_vlanid_mismatch", i); } }