[net] octeontx2-pf: Fix TSOv6 offload

Message ID 20230518064042.3495575-1-rkannoth@marvell.com
State New
Headers
Series [net] octeontx2-pf: Fix TSOv6 offload |

Commit Message

Ratheesh Kannoth May 18, 2023, 6:40 a.m. UTC
  From: Sunil Goutham <sgoutham@marvell.com>

HW adds segment size to the payload length
in the IPv6 header. Fix payload length to
just TCP header length instead of 'TCP header
size + IPv6 header size'.

Fixes: 86d7476078b8 ("octeontx2-pf: TCP segmentation offload support")
Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
Signed-off-by: Ratheesh Kannoth <rkannoth@marvell.com>
---
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
  

Comments

patchwork-bot+netdevbpf@kernel.org May 19, 2023, 8 a.m. UTC | #1
Hello:

This patch was applied to netdev/net.git (main)
by David S. Miller <davem@davemloft.net>:

On Thu, 18 May 2023 12:10:42 +0530 you wrote:
> From: Sunil Goutham <sgoutham@marvell.com>
> 
> HW adds segment size to the payload length
> in the IPv6 header. Fix payload length to
> just TCP header length instead of 'TCP header
> size + IPv6 header size'.
> 
> [...]

Here is the summary with links:
  - [net] octeontx2-pf: Fix TSOv6 offload
    https://git.kernel.org/netdev/net/c/de678ca38861

You are awesome, thank you!
  

Patch

diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
index 7045fedfd73a..7af223b0a37f 100644
--- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
+++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
@@ -652,9 +652,7 @@  static void otx2_sqe_add_ext(struct otx2_nic *pfvf, struct otx2_snd_queue *sq,
 				htons(ext->lso_sb - skb_network_offset(skb));
 		} else if (skb_shinfo(skb)->gso_type & SKB_GSO_TCPV6) {
 			ext->lso_format = pfvf->hw.lso_tsov6_idx;
-
-			ipv6_hdr(skb)->payload_len =
-				htons(ext->lso_sb - skb_network_offset(skb));
+			ipv6_hdr(skb)->payload_len = htons(tcp_hdrlen(skb));
 		} else if (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_L4) {
 			__be16 l3_proto = vlan_get_protocol(skb);
 			struct udphdr *udph = udp_hdr(skb);