50 lines
1.9 KiB
Diff
50 lines
1.9 KiB
Diff
From 148ec1376bab4e262f3bcd354dac20140ad062b6 Mon Sep 17 00:00:00 2001
|
|
From: Jian Shen <shenjian15@huawei.com>
|
|
Date: Thu, 22 Dec 2022 14:43:42 +0800
|
|
Subject: [PATCH 190/283] net: hns3: fix miss L3E checking for rx packet
|
|
|
|
mainline inclusion
|
|
from mainline-v6.2-rc3
|
|
commit 7d89b53cea1a702f97117fb4361523519bb1e52c
|
|
category: bugfix
|
|
bugzilla: https://gitee.com/src-openeuler/kernel/issues/I8EN3D
|
|
CVE: NA
|
|
|
|
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7d89b53cea1a702f97117fb4361523519bb1e52c
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
For device supports RXD advanced layout, the driver will
|
|
return directly if the hardware finish the checksum
|
|
calculate. It cause missing L3E checking for ip packets.
|
|
Fixes it.
|
|
|
|
Fixes: 1ddc028ac849 ("net: hns3: refactor out RX completion checksum")
|
|
Signed-off-by: Jian Shen <shenjian15@huawei.com>
|
|
Signed-off-by: Hao Lan <lanhao@huawei.com>
|
|
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|
Signed-off-by: Jiantao Xiao <xiaojiantao1@h-partners.com>
|
|
Signed-off-by: Xiaodong Li <lixiaodong67@huawei.com>
|
|
|
|
Conflicts:
|
|
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
|
|
---
|
|
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 1 +
|
|
1 file changed, 1 insertion(+)
|
|
|
|
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
|
|
index 42932052ccaf..2ca9e369c4bc 100644
|
|
--- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
|
|
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
|
|
@@ -3545,6 +3545,7 @@ static void hns3_rx_checksum(struct hns3_enet_ring *ring, struct sk_buff *skb,
|
|
if (unlikely(l234info & (BIT(HNS3_RXD_L3E_B) | BIT(HNS3_RXD_L4E_B) |
|
|
BIT(HNS3_RXD_OL3E_B) |
|
|
BIT(HNS3_RXD_OL4E_B)))) {
|
|
+ skb->ip_summed = CHECKSUM_NONE;
|
|
u64_stats_update_begin(&ring->syncp);
|
|
ring->stats.l3l4_csum_err++;
|
|
u64_stats_update_end(&ring->syncp);
|
|
--
|
|
2.34.1
|
|
|