mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-16 14:51:51 -04:00
net: macb: use ethtool_sprintf to fill ethtool stats strings
The RISC-V toolchain triggers a stringop-truncation warning when using snprintf() with a fixed ETH_GSTRING_LEN (32 bytes) buffer. Convert the driver to use the modern ethtool_sprintf() API from linux/ethtool.h. This removes the need for manual snprintf() and memcpy() calls, handles the 32-byte padding automatically, and simplifies the logic by removing manual pointer arithmetic. Suggested-by: Andrew Lunn <andrew@lunn.ch> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com> Signed-off-by: Sean Chang <seanwascoding@gmail.com> Link: https://patch.msgid.link/20260302142931.49108-1-seanwascoding@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
39feb171f3
commit
acd338ba2f
@@ -3161,7 +3161,6 @@ static int gem_get_sset_count(struct net_device *dev, int sset)
|
||||
|
||||
static void gem_get_ethtool_strings(struct net_device *dev, u32 sset, u8 *p)
|
||||
{
|
||||
char stat_string[ETH_GSTRING_LEN];
|
||||
struct macb *bp = netdev_priv(dev);
|
||||
struct macb_queue *queue;
|
||||
unsigned int i;
|
||||
@@ -3174,11 +3173,8 @@ static void gem_get_ethtool_strings(struct net_device *dev, u32 sset, u8 *p)
|
||||
ETH_GSTRING_LEN);
|
||||
|
||||
for (q = 0, queue = bp->queues; q < bp->num_queues; ++q, ++queue) {
|
||||
for (i = 0; i < QUEUE_STATS_LEN; i++, p += ETH_GSTRING_LEN) {
|
||||
snprintf(stat_string, ETH_GSTRING_LEN, "q%d_%s",
|
||||
q, queue_statistics[i].stat_string);
|
||||
memcpy(p, stat_string, ETH_GSTRING_LEN);
|
||||
}
|
||||
for (i = 0; i < QUEUE_STATS_LEN; i++)
|
||||
ethtool_sprintf(&p, "q%u_%s", q, queue_statistics[i].stat_string);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user