net: broadcom: use ethtool string helpers
authorRosen Penev <rosenp@gmail.com>
Mon, 4 Nov 2024 20:53:17 +0000 (12:53 -0800)
committerJakub Kicinski <kuba@kernel.org>
Thu, 7 Nov 2024 01:51:02 +0000 (17:51 -0800)
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>
Tested-by: Florian Fainelli <florian.fainelli@broadcom.com>
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Link: https://patch.msgid.link/20241104205317.306140-1-rosenp@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/broadcom/asp2/bcmasp_ethtool.c
drivers/net/ethernet/broadcom/bcm63xx_enet.c
drivers/net/ethernet/broadcom/bcmsysport.c
drivers/net/ethernet/broadcom/bgmac.c
drivers/net/ethernet/broadcom/genet/bcmgenet.c
drivers/net/phy/bcm-phy-lib.c

index 67928b5d8a268d4e36e300a9f0cd37f9db1c4715..9da5ae29a1050b32f775a02b8c4e67a266531d83 100644 (file)
@@ -101,14 +101,14 @@ static int bcmasp_get_sset_count(struct net_device *dev, int string_set)
 static void bcmasp_get_strings(struct net_device *dev, u32 stringset,
                               u8 *data)
 {
+       const char *str;
        unsigned int i;
 
        switch (stringset) {
        case ETH_SS_STATS:
                for (i = 0; i < BCMASP_STATS_LEN; i++) {
-                       memcpy(data + i * ETH_GSTRING_LEN,
-                              bcmasp_gstrings_stats[i].stat_string,
-                              ETH_GSTRING_LEN);
+                       str = bcmasp_gstrings_stats[i].stat_string;
+                       ethtool_puts(&data, str);
                }
                break;
        default:
index e5e03aaa49f9eebe580193ded9f8bf8f70bd4b3a..65e3a0656a4c56e8837a524ec77c5eef75edd682 100644 (file)
@@ -1339,14 +1339,14 @@ static int bcm_enet_get_sset_count(struct net_device *netdev,
 static void bcm_enet_get_strings(struct net_device *netdev,
                                 u32 stringset, u8 *data)
 {
+       const char *str;
        int i;
 
        switch (stringset) {
        case ETH_SS_STATS:
                for (i = 0; i < BCM_ENET_STATS_LEN; i++) {
-                       memcpy(data + i * ETH_GSTRING_LEN,
-                              bcm_enet_gstrings_stats[i].stat_string,
-                              ETH_GSTRING_LEN);
+                       str = bcm_enet_gstrings_stats[i].stat_string;
+                       ethtool_puts(&data, str);
                }
                break;
        }
@@ -2503,14 +2503,14 @@ static const struct bcm_enet_stats bcm_enetsw_gstrings_stats[] = {
 static void bcm_enetsw_get_strings(struct net_device *netdev,
                                   u32 stringset, u8 *data)
 {
+       const char *str;
        int i;
 
        switch (stringset) {
        case ETH_SS_STATS:
                for (i = 0; i < BCM_ENETSW_STATS_LEN; i++) {
-                       memcpy(data + i * ETH_GSTRING_LEN,
-                              bcm_enetsw_gstrings_stats[i].stat_string,
-                              ETH_GSTRING_LEN);
+                       str = bcm_enetsw_gstrings_stats[i].stat_string;
+                       ethtool_puts(&data, str);
                }
                break;
        }
index 031e9e0cca5380bb98f24fe5d32c684fda220c69..42672c63f10863eb03a691504ae0f251708d7a62 100644 (file)
@@ -346,32 +346,22 @@ static void bcm_sysport_get_strings(struct net_device *dev,
 {
        struct bcm_sysport_priv *priv = netdev_priv(dev);
        const struct bcm_sysport_stats *s;
-       char buf[128];
-       int i, j;
+       int i;
 
        switch (stringset) {
        case ETH_SS_STATS:
-               for (i = 0, j = 0; i < BCM_SYSPORT_STATS_LEN; i++) {
+               for (i = 0; i < BCM_SYSPORT_STATS_LEN; i++) {
                        s = &bcm_sysport_gstrings_stats[i];
                        if (priv->is_lite &&
                            !bcm_sysport_lite_stat_valid(s->type))
                                continue;
 
-                       memcpy(data + j * ETH_GSTRING_LEN, s->stat_string,
-                              ETH_GSTRING_LEN);
-                       j++;
+                       ethtool_puts(&data, s->stat_string);
                }
 
                for (i = 0; i < dev->num_tx_queues; i++) {
-                       snprintf(buf, sizeof(buf), "txq%d_packets", i);
-                       memcpy(data + j * ETH_GSTRING_LEN, buf,
-                              ETH_GSTRING_LEN);
-                       j++;
-
-                       snprintf(buf, sizeof(buf), "txq%d_bytes", i);
-                       memcpy(data + j * ETH_GSTRING_LEN, buf,
-                              ETH_GSTRING_LEN);
-                       j++;
+                       ethtool_sprintf(&data, "txq%d_packets", i);
+                       ethtool_sprintf(&data, "txq%d_bytes", i);
                }
                break;
        default:
index 6ffdc42294074f86b08e92accb705e7e58409967..a461ec612e9523cdbebd1a49a996eb64abd68a6c 100644 (file)
@@ -1367,8 +1367,7 @@ static void bgmac_get_strings(struct net_device *dev, u32 stringset,
                return;
 
        for (i = 0; i < BGMAC_STATS_LEN; i++)
-               strscpy(data + i * ETH_GSTRING_LEN,
-                       bgmac_get_strings_stats[i].name, ETH_GSTRING_LEN);
+               ethtool_puts(&data, bgmac_get_strings_stats[i].name);
 }
 
 static void bgmac_get_ethtool_stats(struct net_device *dev,
index 53a949eb91803593a4b9a830edd576b344f3bdb9..3e93f957430b2d6cbe5c4648b845f565b5b02d41 100644 (file)
@@ -1144,14 +1144,14 @@ static int bcmgenet_get_sset_count(struct net_device *dev, int string_set)
 static void bcmgenet_get_strings(struct net_device *dev, u32 stringset,
                                 u8 *data)
 {
+       const char *str;
        int i;
 
        switch (stringset) {
        case ETH_SS_STATS:
                for (i = 0; i < BCMGENET_STATS_LEN; i++) {
-                       memcpy(data + i * ETH_GSTRING_LEN,
-                              bcmgenet_gstrings_stats[i].stat_string,
-                              ETH_GSTRING_LEN);
+                       str = bcmgenet_gstrings_stats[i].stat_string;
+                       ethtool_puts(&data, str);
                }
                break;
        }
index 6c52f7dda514b303346a113b8d55ab20aa3675de..59c2c6acc134bac6fb82d17b9a95ca8a54a68fb2 100644 (file)
@@ -523,8 +523,7 @@ void bcm_phy_get_strings(struct phy_device *phydev, u8 *data)
        unsigned int i;
 
        for (i = 0; i < ARRAY_SIZE(bcm_phy_hw_stats); i++)
-               strscpy(data + i * ETH_GSTRING_LEN,
-                       bcm_phy_hw_stats[i].string, ETH_GSTRING_LEN);
+               ethtool_puts(&data, bcm_phy_hw_stats[i].string);
 }
 EXPORT_SYMBOL_GPL(bcm_phy_get_strings);