From: Gal Pressman Date: Mon, 4 May 2026 18:37:00 +0000 (+0300) Subject: net/mlx5e: Count full skb length in TSO byte counters X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=de58db5f0d950c56f2fe488d04fdf376dd5ad2a6;p=thirdparty%2Fkernel%2Flinux.git net/mlx5e: Count full skb length in TSO byte counters The tso_bytes and tso_inner_bytes counters currently subtract the header length from skb->len, counting only the payload. This is confusing and doesn't align with the behavior of other _bytes counters in the driver. Report the full skb length to align with this expectation. This also makes our behavior consistent with the netdev stats API and virtio spec definition. Signed-off-by: Gal Pressman Signed-off-by: Tariq Toukan Link: https://patch.msgid.link/20260504183704.272322-2-tariqt@nvidia.com Signed-off-by: Jakub Kicinski --- diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c index 9f0272649fa1..0b5e600e4a6a 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c @@ -164,14 +164,14 @@ mlx5e_tx_get_gso_ihs(struct mlx5e_txqsq *sq, struct sk_buff *skb) else ihs = skb_inner_tcp_all_headers(skb); stats->tso_inner_packets++; - stats->tso_inner_bytes += skb->len - ihs; + stats->tso_inner_bytes += skb->len; } else { if (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_L4) ihs = skb_transport_offset(skb) + sizeof(struct udphdr); else ihs = skb_tcp_all_headers(skb); stats->tso_packets++; - stats->tso_bytes += skb->len - ihs; + stats->tso_bytes += skb->len; } return ihs;