[PATCH v5 net-next 2/2] net: hns3: fix GSO_ECN flag setting in the RX path
[email protected] Tue, 4 Aug 2026 23:35:10 +0200
| Newsgroups | gmane.linux.documentation,gmane.linux.drivers.rdma,gmane.linux.kernel.bpf,gmane.linux.network |
|---|---|
| Message-ID | <[email protected]> |
From: Chia-Yu Chang <[email protected]> Currently, the hns3 Rx path sets the SKB_GSO_TCP_ECN flag when a TCP segment with the CWR flag set is received. This is incorrect because the hns3 hardware GRO resets the IP ToS byte to 0 during packet aggregation. Consequently, no valid ECN signals are carreid, meaning that it cannot support RFC3168 ECN or Accurate ECN protocols. Setting SKB_GSO_TCP_ECN or SKB_GSO_TCP_ACCECN under these conditions misleads the upper network stack. Fix this by removing the incorrect SKB_GSO_TCP_ECN flag assignment in hns3_gro_complete(). Fixes: d474d88f88261 ("net: hns3: add hns3_gro_complete for HW GRO process") Signed-off-by: Chia-Yu Chang <[email protected]> --- v5: - Remove SKB_GSO_TCP_ECN flag and update the commit message v3: - Rewrite the commit message for clarity --- drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c index 6ecb32e28e79..5149eca0104a 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c @@ -3916,8 +3916,6 @@ static int hns3_gro_complete(struct sk_buff *skb, u32 l234info) } skb_shinfo(skb)->gso_segs = NAPI_GRO_CB(skb)->count; - if (th->cwr) - skb_shinfo(skb)->gso_type |= SKB_GSO_TCP_ECN; if (l234info & BIT(HNS3_RXD_GRO_FIXID_B)) skb_shinfo(skb)->gso_type |= SKB_GSO_TCP_FIXEDID; -- 2.34.1