netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] net: mana: use ethtool string helpers
@ 2024-10-22 20:49 Rosen Penev
  2024-10-22 20:56 ` Rosen Penev
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Rosen Penev @ 2024-10-22 20:49 UTC (permalink / raw)
  To: netdev
  Cc: K. Y. Srinivasan, Haiyang Zhang, Wei Liu, Dexuan Cui, Andrew Lunn,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Alexei Starovoitov, Daniel Borkmann, Jesper Dangaard Brouer,
	John Fastabend, Shradha Gupta, Simon Horman, Colin Ian King,
	Rosen Penev, Erni Sri Satya Vennela, Ahmed Zaki,
	open list:Hyper-V/Azure CORE AND DRIVERS, open list,
	open list:XDP (eXpress Data Path):Keyword:(?:b|_)xdp(?:b|_)

The latter is the preferred way to copy ethtool strings.

Avoids manually incrementing the data pointer.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
 .../ethernet/microsoft/mana/mana_ethtool.c    | 55 ++++++-------------
 1 file changed, 18 insertions(+), 37 deletions(-)

diff --git a/drivers/net/ethernet/microsoft/mana/mana_ethtool.c b/drivers/net/ethernet/microsoft/mana/mana_ethtool.c
index 349f11bf8e64..c419626073f5 100644
--- a/drivers/net/ethernet/microsoft/mana/mana_ethtool.c
+++ b/drivers/net/ethernet/microsoft/mana/mana_ethtool.c
@@ -91,53 +91,34 @@ static void mana_get_strings(struct net_device *ndev, u32 stringset, u8 *data)
 {
 	struct mana_port_context *apc = netdev_priv(ndev);
 	unsigned int num_queues = apc->num_queues;
-	u8 *p = data;
 	int i;
 
 	if (stringset != ETH_SS_STATS)
 		return;
 
-	for (i = 0; i < ARRAY_SIZE(mana_eth_stats); i++) {
-		memcpy(p, mana_eth_stats[i].name, ETH_GSTRING_LEN);
-		p += ETH_GSTRING_LEN;
-	}
+	for (i = 0; i < ARRAY_SIZE(mana_eth_stats); i++)
+		ethtool_puts(&data, mana_eth_stats[i].name);
 
 	for (i = 0; i < num_queues; i++) {
-		sprintf(p, "rx_%d_packets", i);
-		p += ETH_GSTRING_LEN;
-		sprintf(p, "rx_%d_bytes", i);
-		p += ETH_GSTRING_LEN;
-		sprintf(p, "rx_%d_xdp_drop", i);
-		p += ETH_GSTRING_LEN;
-		sprintf(p, "rx_%d_xdp_tx", i);
-		p += ETH_GSTRING_LEN;
-		sprintf(p, "rx_%d_xdp_redirect", i);
-		p += ETH_GSTRING_LEN;
+		ethtool_sprintf(&data, "rx_%d_packets", i);
+		ethtool_sprintf(&data, "rx_%d_bytes", i);
+		ethtool_sprintf(&data, "rx_%d_xdp_drop", i);
+		ethtool_sprintf(&data, "rx_%d_xdp_tx", i);
+		ethtool_sprintf(&data, "rx_%d_xdp_redirect", i);
 	}
 
 	for (i = 0; i < num_queues; i++) {
-		sprintf(p, "tx_%d_packets", i);
-		p += ETH_GSTRING_LEN;
-		sprintf(p, "tx_%d_bytes", i);
-		p += ETH_GSTRING_LEN;
-		sprintf(p, "tx_%d_xdp_xmit", i);
-		p += ETH_GSTRING_LEN;
-		sprintf(p, "tx_%d_tso_packets", i);
-		p += ETH_GSTRING_LEN;
-		sprintf(p, "tx_%d_tso_bytes", i);
-		p += ETH_GSTRING_LEN;
-		sprintf(p, "tx_%d_tso_inner_packets", i);
-		p += ETH_GSTRING_LEN;
-		sprintf(p, "tx_%d_tso_inner_bytes", i);
-		p += ETH_GSTRING_LEN;
-		sprintf(p, "tx_%d_long_pkt_fmt", i);
-		p += ETH_GSTRING_LEN;
-		sprintf(p, "tx_%d_short_pkt_fmt", i);
-		p += ETH_GSTRING_LEN;
-		sprintf(p, "tx_%d_csum_partial", i);
-		p += ETH_GSTRING_LEN;
-		sprintf(p, "tx_%d_mana_map_err", i);
-		p += ETH_GSTRING_LEN;
+		ethtool_sprintf(&data, "tx_%d_packets", i);
+		ethtool_sprintf(&data, "tx_%d_bytes", i);
+		ethtool_sprintf(&data, "tx_%d_xdp_xmit", i);
+		ethtool_sprintf(&data, "tx_%d_tso_packets", i);
+		ethtool_sprintf(&data, "tx_%d_tso_bytes", i);
+		ethtool_sprintf(&data, "tx_%d_tso_inner_packets", i);
+		ethtool_sprintf(&data, "tx_%d_tso_inner_bytes", i);
+		ethtool_sprintf(&data, "tx_%d_long_pkt_fmt", i);
+		ethtool_sprintf(&data, "tx_%d_short_pkt_fmt", i);
+		ethtool_sprintf(&data, "tx_%d_csum_partial", i);
+		ethtool_sprintf(&data, "tx_%d_mana_map_err", i);
 	}
 }
 
-- 
2.47.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] net: mana: use ethtool string helpers
  2024-10-22 20:49 [PATCH] net: mana: use ethtool string helpers Rosen Penev
@ 2024-10-22 20:56 ` Rosen Penev
  2024-10-24 11:05   ` Simon Horman
  2024-10-24 11:04 ` Simon Horman
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 6+ messages in thread
From: Rosen Penev @ 2024-10-22 20:56 UTC (permalink / raw)
  To: netdev
  Cc: K. Y. Srinivasan, Haiyang Zhang, Wei Liu, Dexuan Cui, Andrew Lunn,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Alexei Starovoitov, Daniel Borkmann, Jesper Dangaard Brouer,
	John Fastabend, Shradha Gupta, Simon Horman, Colin Ian King,
	Erni Sri Satya Vennela, Ahmed Zaki,
	open list:Hyper-V/Azure CORE AND DRIVERS, open list,
	open list:XDP (eXpress Data Path):Keyword:(?:b|_)xdp(?:b|_)

On Tue, Oct 22, 2024 at 1:49 PM Rosen Penev <rosenp@gmail.com> wrote:
>
> The latter is the preferred way to copy ethtool strings.
>
> Avoids manually incrementing the data pointer.
>
> Signed-off-by: Rosen Penev <rosenp@gmail.com>
forgot to put net-next.
> ---
>  .../ethernet/microsoft/mana/mana_ethtool.c    | 55 ++++++-------------
>  1 file changed, 18 insertions(+), 37 deletions(-)
>
> diff --git a/drivers/net/ethernet/microsoft/mana/mana_ethtool.c b/drivers/net/ethernet/microsoft/mana/mana_ethtool.c
> index 349f11bf8e64..c419626073f5 100644
> --- a/drivers/net/ethernet/microsoft/mana/mana_ethtool.c
> +++ b/drivers/net/ethernet/microsoft/mana/mana_ethtool.c
> @@ -91,53 +91,34 @@ static void mana_get_strings(struct net_device *ndev, u32 stringset, u8 *data)
>  {
>         struct mana_port_context *apc = netdev_priv(ndev);
>         unsigned int num_queues = apc->num_queues;
> -       u8 *p = data;
>         int i;
>
>         if (stringset != ETH_SS_STATS)
>                 return;
>
> -       for (i = 0; i < ARRAY_SIZE(mana_eth_stats); i++) {
> -               memcpy(p, mana_eth_stats[i].name, ETH_GSTRING_LEN);
> -               p += ETH_GSTRING_LEN;
> -       }
> +       for (i = 0; i < ARRAY_SIZE(mana_eth_stats); i++)
> +               ethtool_puts(&data, mana_eth_stats[i].name);
>
>         for (i = 0; i < num_queues; i++) {
> -               sprintf(p, "rx_%d_packets", i);
> -               p += ETH_GSTRING_LEN;
> -               sprintf(p, "rx_%d_bytes", i);
> -               p += ETH_GSTRING_LEN;
> -               sprintf(p, "rx_%d_xdp_drop", i);
> -               p += ETH_GSTRING_LEN;
> -               sprintf(p, "rx_%d_xdp_tx", i);
> -               p += ETH_GSTRING_LEN;
> -               sprintf(p, "rx_%d_xdp_redirect", i);
> -               p += ETH_GSTRING_LEN;
> +               ethtool_sprintf(&data, "rx_%d_packets", i);
> +               ethtool_sprintf(&data, "rx_%d_bytes", i);
> +               ethtool_sprintf(&data, "rx_%d_xdp_drop", i);
> +               ethtool_sprintf(&data, "rx_%d_xdp_tx", i);
> +               ethtool_sprintf(&data, "rx_%d_xdp_redirect", i);
>         }
>
>         for (i = 0; i < num_queues; i++) {
> -               sprintf(p, "tx_%d_packets", i);
> -               p += ETH_GSTRING_LEN;
> -               sprintf(p, "tx_%d_bytes", i);
> -               p += ETH_GSTRING_LEN;
> -               sprintf(p, "tx_%d_xdp_xmit", i);
> -               p += ETH_GSTRING_LEN;
> -               sprintf(p, "tx_%d_tso_packets", i);
> -               p += ETH_GSTRING_LEN;
> -               sprintf(p, "tx_%d_tso_bytes", i);
> -               p += ETH_GSTRING_LEN;
> -               sprintf(p, "tx_%d_tso_inner_packets", i);
> -               p += ETH_GSTRING_LEN;
> -               sprintf(p, "tx_%d_tso_inner_bytes", i);
> -               p += ETH_GSTRING_LEN;
> -               sprintf(p, "tx_%d_long_pkt_fmt", i);
> -               p += ETH_GSTRING_LEN;
> -               sprintf(p, "tx_%d_short_pkt_fmt", i);
> -               p += ETH_GSTRING_LEN;
> -               sprintf(p, "tx_%d_csum_partial", i);
> -               p += ETH_GSTRING_LEN;
> -               sprintf(p, "tx_%d_mana_map_err", i);
> -               p += ETH_GSTRING_LEN;
> +               ethtool_sprintf(&data, "tx_%d_packets", i);
> +               ethtool_sprintf(&data, "tx_%d_bytes", i);
> +               ethtool_sprintf(&data, "tx_%d_xdp_xmit", i);
> +               ethtool_sprintf(&data, "tx_%d_tso_packets", i);
> +               ethtool_sprintf(&data, "tx_%d_tso_bytes", i);
> +               ethtool_sprintf(&data, "tx_%d_tso_inner_packets", i);
> +               ethtool_sprintf(&data, "tx_%d_tso_inner_bytes", i);
> +               ethtool_sprintf(&data, "tx_%d_long_pkt_fmt", i);
> +               ethtool_sprintf(&data, "tx_%d_short_pkt_fmt", i);
> +               ethtool_sprintf(&data, "tx_%d_csum_partial", i);
> +               ethtool_sprintf(&data, "tx_%d_mana_map_err", i);
>         }
>  }
>
> --
> 2.47.0
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] net: mana: use ethtool string helpers
  2024-10-22 20:49 [PATCH] net: mana: use ethtool string helpers Rosen Penev
  2024-10-22 20:56 ` Rosen Penev
@ 2024-10-24 11:04 ` Simon Horman
  2024-10-25  6:08 ` Shradha Gupta
  2024-10-29 23:00 ` patchwork-bot+netdevbpf
  3 siblings, 0 replies; 6+ messages in thread
From: Simon Horman @ 2024-10-24 11:04 UTC (permalink / raw)
  To: Rosen Penev
  Cc: netdev, K. Y. Srinivasan, Haiyang Zhang, Wei Liu, Dexuan Cui,
	Andrew Lunn, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Alexei Starovoitov, Daniel Borkmann,
	Jesper Dangaard Brouer, John Fastabend, Shradha Gupta,
	Colin Ian King, Erni Sri Satya Vennela, Ahmed Zaki,
	open list:Hyper-V/Azure CORE AND DRIVERS, open list,
	open list:XDP (eXpress Data Path):Keyword:(?:b|_)xdp(?:b|_)

On Tue, Oct 22, 2024 at 01:49:08PM -0700, Rosen Penev wrote:
> The latter is the preferred way to copy ethtool strings.
> 
> Avoids manually incrementing the data pointer.
> 
> Signed-off-by: Rosen Penev <rosenp@gmail.com>

Reviewed-by: Simon Horman <horms@kernel.org>


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] net: mana: use ethtool string helpers
  2024-10-22 20:56 ` Rosen Penev
@ 2024-10-24 11:05   ` Simon Horman
  0 siblings, 0 replies; 6+ messages in thread
From: Simon Horman @ 2024-10-24 11:05 UTC (permalink / raw)
  To: Rosen Penev
  Cc: netdev, K. Y. Srinivasan, Haiyang Zhang, Wei Liu, Dexuan Cui,
	Andrew Lunn, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Alexei Starovoitov, Daniel Borkmann,
	Jesper Dangaard Brouer, John Fastabend, Shradha Gupta,
	Colin Ian King, Erni Sri Satya Vennela, Ahmed Zaki,
	open list:Hyper-V/Azure CORE AND DRIVERS, open list,
	open list:XDP (eXpress Data Path):Keyword:(?:b|_)xdp(?:b|_)

On Tue, Oct 22, 2024 at 01:56:56PM -0700, Rosen Penev wrote:
> On Tue, Oct 22, 2024 at 1:49 PM Rosen Penev <rosenp@gmail.com> wrote:
> >
> > The latter is the preferred way to copy ethtool strings.
> >
> > Avoids manually incrementing the data pointer.
> >
> > Signed-off-by: Rosen Penev <rosenp@gmail.com>
> forgot to put net-next.

Hi Rosen,

The CI guessed correctly, so I don't think you need to repost just for that.

...

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] net: mana: use ethtool string helpers
  2024-10-22 20:49 [PATCH] net: mana: use ethtool string helpers Rosen Penev
  2024-10-22 20:56 ` Rosen Penev
  2024-10-24 11:04 ` Simon Horman
@ 2024-10-25  6:08 ` Shradha Gupta
  2024-10-29 23:00 ` patchwork-bot+netdevbpf
  3 siblings, 0 replies; 6+ messages in thread
From: Shradha Gupta @ 2024-10-25  6:08 UTC (permalink / raw)
  To: Rosen Penev
  Cc: netdev, K. Y. Srinivasan, Haiyang Zhang, Wei Liu, Dexuan Cui,
	Andrew Lunn, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Alexei Starovoitov, Daniel Borkmann,
	Jesper Dangaard Brouer, John Fastabend, Simon Horman,
	Colin Ian King, Erni Sri Satya Vennela, Ahmed Zaki,
	open list:Hyper-V/Azure CORE AND DRIVERS, open list,
	open list:XDP (eXpress Data Path):Keyword:(?:b|_)xdp(?:b|_)

On Tue, Oct 22, 2024 at 01:49:08PM -0700, Rosen Penev wrote:
> The latter is the preferred way to copy ethtool strings.
> 
> Avoids manually incrementing the data pointer.
> 
> Signed-off-by: Rosen Penev <rosenp@gmail.com>
> ---
>  .../ethernet/microsoft/mana/mana_ethtool.c    | 55 ++++++-------------
>  1 file changed, 18 insertions(+), 37 deletions(-)
> 
> diff --git a/drivers/net/ethernet/microsoft/mana/mana_ethtool.c b/drivers/net/ethernet/microsoft/mana/mana_ethtool.c
> index 349f11bf8e64..c419626073f5 100644
> --- a/drivers/net/ethernet/microsoft/mana/mana_ethtool.c
> +++ b/drivers/net/ethernet/microsoft/mana/mana_ethtool.c
> @@ -91,53 +91,34 @@ static void mana_get_strings(struct net_device *ndev, u32 stringset, u8 *data)
>  {
>  	struct mana_port_context *apc = netdev_priv(ndev);
>  	unsigned int num_queues = apc->num_queues;
> -	u8 *p = data;
>  	int i;
>  
>  	if (stringset != ETH_SS_STATS)
>  		return;
>  
> -	for (i = 0; i < ARRAY_SIZE(mana_eth_stats); i++) {
> -		memcpy(p, mana_eth_stats[i].name, ETH_GSTRING_LEN);
> -		p += ETH_GSTRING_LEN;
> -	}
> +	for (i = 0; i < ARRAY_SIZE(mana_eth_stats); i++)
> +		ethtool_puts(&data, mana_eth_stats[i].name);
>  
>  	for (i = 0; i < num_queues; i++) {
> -		sprintf(p, "rx_%d_packets", i);
> -		p += ETH_GSTRING_LEN;
> -		sprintf(p, "rx_%d_bytes", i);
> -		p += ETH_GSTRING_LEN;
> -		sprintf(p, "rx_%d_xdp_drop", i);
> -		p += ETH_GSTRING_LEN;
> -		sprintf(p, "rx_%d_xdp_tx", i);
> -		p += ETH_GSTRING_LEN;
> -		sprintf(p, "rx_%d_xdp_redirect", i);
> -		p += ETH_GSTRING_LEN;
> +		ethtool_sprintf(&data, "rx_%d_packets", i);
> +		ethtool_sprintf(&data, "rx_%d_bytes", i);
> +		ethtool_sprintf(&data, "rx_%d_xdp_drop", i);
> +		ethtool_sprintf(&data, "rx_%d_xdp_tx", i);
> +		ethtool_sprintf(&data, "rx_%d_xdp_redirect", i);
>  	}
>  
>  	for (i = 0; i < num_queues; i++) {
> -		sprintf(p, "tx_%d_packets", i);
> -		p += ETH_GSTRING_LEN;
> -		sprintf(p, "tx_%d_bytes", i);
> -		p += ETH_GSTRING_LEN;
> -		sprintf(p, "tx_%d_xdp_xmit", i);
> -		p += ETH_GSTRING_LEN;
> -		sprintf(p, "tx_%d_tso_packets", i);
> -		p += ETH_GSTRING_LEN;
> -		sprintf(p, "tx_%d_tso_bytes", i);
> -		p += ETH_GSTRING_LEN;
> -		sprintf(p, "tx_%d_tso_inner_packets", i);
> -		p += ETH_GSTRING_LEN;
> -		sprintf(p, "tx_%d_tso_inner_bytes", i);
> -		p += ETH_GSTRING_LEN;
> -		sprintf(p, "tx_%d_long_pkt_fmt", i);
> -		p += ETH_GSTRING_LEN;
> -		sprintf(p, "tx_%d_short_pkt_fmt", i);
> -		p += ETH_GSTRING_LEN;
> -		sprintf(p, "tx_%d_csum_partial", i);
> -		p += ETH_GSTRING_LEN;
> -		sprintf(p, "tx_%d_mana_map_err", i);
> -		p += ETH_GSTRING_LEN;
> +		ethtool_sprintf(&data, "tx_%d_packets", i);
> +		ethtool_sprintf(&data, "tx_%d_bytes", i);
> +		ethtool_sprintf(&data, "tx_%d_xdp_xmit", i);
> +		ethtool_sprintf(&data, "tx_%d_tso_packets", i);
> +		ethtool_sprintf(&data, "tx_%d_tso_bytes", i);
> +		ethtool_sprintf(&data, "tx_%d_tso_inner_packets", i);
> +		ethtool_sprintf(&data, "tx_%d_tso_inner_bytes", i);
> +		ethtool_sprintf(&data, "tx_%d_long_pkt_fmt", i);
> +		ethtool_sprintf(&data, "tx_%d_short_pkt_fmt", i);
> +		ethtool_sprintf(&data, "tx_%d_csum_partial", i);
> +		ethtool_sprintf(&data, "tx_%d_mana_map_err", i);
>  	}
>  }
Reviewed-by: Shradha Gupta <shradhagupta@linux.microsoft.com>
>  
> -- 
> 2.47.0

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] net: mana: use ethtool string helpers
  2024-10-22 20:49 [PATCH] net: mana: use ethtool string helpers Rosen Penev
                   ` (2 preceding siblings ...)
  2024-10-25  6:08 ` Shradha Gupta
@ 2024-10-29 23:00 ` patchwork-bot+netdevbpf
  3 siblings, 0 replies; 6+ messages in thread
From: patchwork-bot+netdevbpf @ 2024-10-29 23:00 UTC (permalink / raw)
  To: Rosen Penev
  Cc: netdev, kys, haiyangz, wei.liu, decui, andrew+netdev, davem,
	edumazet, kuba, pabeni, ast, daniel, hawk, john.fastabend,
	shradhagupta, horms, colin.i.king, ernis, ahmed.zaki,
	linux-hyperv, linux-kernel, bpf

Hello:

This patch was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Tue, 22 Oct 2024 13:49:08 -0700 you wrote:
> The latter is the preferred way to copy ethtool strings.
> 
> Avoids manually incrementing the data pointer.
> 
> Signed-off-by: Rosen Penev <rosenp@gmail.com>
> ---
>  .../ethernet/microsoft/mana/mana_ethtool.c    | 55 ++++++-------------
>  1 file changed, 18 insertions(+), 37 deletions(-)

Here is the summary with links:
  - net: mana: use ethtool string helpers
    https://git.kernel.org/netdev/net-next/c/ae2930b0b311

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-10-29 23:00 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-22 20:49 [PATCH] net: mana: use ethtool string helpers Rosen Penev
2024-10-22 20:56 ` Rosen Penev
2024-10-24 11:05   ` Simon Horman
2024-10-24 11:04 ` Simon Horman
2024-10-25  6:08 ` Shradha Gupta
2024-10-29 23:00 ` patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).