igc: Update driver to use ethtool_sprintf
authorSasha Neftin <sasha.neftin@intel.com>
Mon, 12 Apr 2021 14:41:07 +0000 (17:41 +0300)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Fri, 4 Jun 2021 16:14:16 +0000 (09:14 -0700)
Complete to commit c8d4725e985d ("intel: Update drivers to use
ethtool_sprintf")
Update the igc driver to make use of ethtool_sprintf. The general idea
is to reduce code size and overhead by replacing the repeated pattern of
string printf statements and ETH_STRING_LEN counter increments.

Suggested-by: Alexander Duyck <alexanderduyck@fb.com>
Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Tested-by: Dvora Fuxbrumer <dvorax.fuxbrumer@linux.intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/igc/igc_ethtool.c

index 2cb12431c371a02355890b69334647a6e9d24497..fa4171860623f778d8d8c4e72ed219d7e36b3344 100644 (file)
@@ -765,35 +765,22 @@ static void igc_ethtool_get_strings(struct net_device *netdev, u32 stringset,
                       IGC_TEST_LEN * ETH_GSTRING_LEN);
                break;
        case ETH_SS_STATS:
-               for (i = 0; i < IGC_GLOBAL_STATS_LEN; i++) {
-                       memcpy(p, igc_gstrings_stats[i].stat_string,
-                              ETH_GSTRING_LEN);
-                       p += ETH_GSTRING_LEN;
-               }
-               for (i = 0; i < IGC_NETDEV_STATS_LEN; i++) {
-                       memcpy(p, igc_gstrings_net_stats[i].stat_string,
-                              ETH_GSTRING_LEN);
-                       p += ETH_GSTRING_LEN;
-               }
+               for (i = 0; i < IGC_GLOBAL_STATS_LEN; i++)
+                       ethtool_sprintf(&p, igc_gstrings_stats[i].stat_string);
+               for (i = 0; i < IGC_NETDEV_STATS_LEN; i++)
+                       ethtool_sprintf(&p,
+                                       igc_gstrings_net_stats[i].stat_string);
                for (i = 0; i < adapter->num_tx_queues; i++) {
-                       sprintf(p, "tx_queue_%u_packets", i);
-                       p += ETH_GSTRING_LEN;
-                       sprintf(p, "tx_queue_%u_bytes", i);
-                       p += ETH_GSTRING_LEN;
-                       sprintf(p, "tx_queue_%u_restart", i);
-                       p += ETH_GSTRING_LEN;
+                       ethtool_sprintf(&p, "tx_queue_%u_packets", i);
+                       ethtool_sprintf(&p, "tx_queue_%u_bytes", i);
+                       ethtool_sprintf(&p, "tx_queue_%u_restart", i);
                }
                for (i = 0; i < adapter->num_rx_queues; i++) {
-                       sprintf(p, "rx_queue_%u_packets", i);
-                       p += ETH_GSTRING_LEN;
-                       sprintf(p, "rx_queue_%u_bytes", i);
-                       p += ETH_GSTRING_LEN;
-                       sprintf(p, "rx_queue_%u_drops", i);
-                       p += ETH_GSTRING_LEN;
-                       sprintf(p, "rx_queue_%u_csum_err", i);
-                       p += ETH_GSTRING_LEN;
-                       sprintf(p, "rx_queue_%u_alloc_failed", i);
-                       p += ETH_GSTRING_LEN;
+                       ethtool_sprintf(&p, "rx_queue_%u_packets", i);
+                       ethtool_sprintf(&p, "rx_queue_%u_bytes", i);
+                       ethtool_sprintf(&p, "rx_queue_%u_drops", i);
+                       ethtool_sprintf(&p, "rx_queue_%u_csum_err", i);
+                       ethtool_sprintf(&p, "rx_queue_%u_alloc_failed", i);
                }
                /* BUG_ON(p - data != IGC_STATS_LEN * ETH_GSTRING_LEN); */
                break;