Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp3407838pxa; Tue, 25 Aug 2020 22:21:22 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzw+wBQdoqQWqCYO5Xnit9ML+YifDdqfczwhcK/95pHKw+084TVHl8SFdee8YE9YPBO/Jef X-Received: by 2002:a05:6402:1299:: with SMTP id w25mr13647685edv.349.1598419281818; Tue, 25 Aug 2020 22:21:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1598419281; cv=none; d=google.com; s=arc-20160816; b=l7YgF6LOOrRGbjUQACMaejM3tkExEO9gFTNpsHqYieiTgOXevrO9HoZGQC6TpGYWg8 bbjFwGM9E7C+stJgkSUxZo3S5hes60LgCPbvUGRDOG3EUd40+FPW81K2z+Lfa5tbEAV+ kE14VSCHNnLzNd4k5afyzqBHB6+oCTQ8WJVhC7RizXybbR6qt6OKNrRCimLaWgcTjq7+ U+dgV/TD5+tdvcbCcdl1RnqYIQB3hLIzxCdYcYbZIXwV46oXRfO3TRXWeUaHtEHHB6HN i2otz7lxRQ56nennERqb+0idyOoNvP59Axf0ZFYalQIa3nPf3u0HFvDKyUYEdzQTwIVA OfYA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=sjx0Iguw0Nhz7OF0HH5Z8KdSEyXbGZ6pmd3KqgW2UyA=; b=M3ZaVIZvF7jlAwcvJ5XI8+M+fugcHb+TCmcH6IS+LScCnQsjLWJt4Mky1dkVJCkpye UOchTtTgbdrv12+MNF5ZFThST6g99Zl9IL6eF25FwAQ70VpZnh752mvblRxQq6ApmhFF YUKFmr5EZ0rWeB/hDmmfeovmPMGwK9QgmIr4XHtYb4MrzA3l6vzETHHbBerby70zJL11 FIWFxFcQuaCKXsaFfwSvtwd4a75CoQ+52DRr4KEX/SoBjdfbAmOaKLCy1ywJDr3X4J0d T1a/zTPS2rNFJ2nNM6APkwpGt7f3ukw/24Hjk0gyQvhqT9BT+CotriwLdVUoObb4s+2H DTIA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id 91si953712edy.18.2020.08.25.22.20.59; Tue, 25 Aug 2020 22:21:21 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725980AbgHZFUH (ORCPT + 99 others); Wed, 26 Aug 2020 01:20:07 -0400 Received: from regular1.263xmail.com ([211.150.70.206]:57094 "EHLO regular1.263xmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725779AbgHZFUF (ORCPT ); Wed, 26 Aug 2020 01:20:05 -0400 X-Greylist: delayed 471 seconds by postgrey-1.27 at vger.kernel.org; Wed, 26 Aug 2020 01:20:02 EDT Received: from localhost (unknown [192.168.167.69]) by regular1.263xmail.com (Postfix) with ESMTP id 59B2E485; Wed, 26 Aug 2020 13:11:59 +0800 (CST) X-MAIL-GRAY: 0 X-MAIL-DELIVERY: 1 X-ADDR-CHECKED4: 1 X-ANTISPAM-LEVEL: 2 X-SKE-CHECKED: 1 X-ABS-CHECKED: 1 Received: from localhost.localdomain (unknown [14.18.236.70]) by smtp.263.net (postfix) whith ESMTP id P32155T139860231112448S1598418712200462_; Wed, 26 Aug 2020 13:11:58 +0800 (CST) X-IP-DOMAINF: 1 X-UNIQUE-TAG: X-RL-SENDER: yili@winhong.com X-SENDER: yili@winhong.com X-LOGIN-NAME: yili@winhong.com X-FST-TO: linux-kernel@vger.kernel.org X-SENDER-IP: 14.18.236.70 X-ATTACHMENT-NUM: 0 X-DNS-TYPE: 0 X-System-Flag: 0 From: Yi Li To: linux-kernel@vger.kernel.org, netdev@vger.kernel.org Cc: yilikernel@gmail.com, yili@winhong.com, yisen.zhuang@huawei.com, salil.mehta@huawei.com, davem@davemloft.net, kuba@kernel.org, Li Bing Subject: [PATCH] net: hns3: Fix for geneve tx checksum bug Date: Wed, 26 Aug 2020 13:11:50 +0800 Message-Id: <20200826051150.2646128-1-yili@winhong.com> X-Mailer: git-send-email 2.25.3 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org when skb->encapsulation is 0, skb->ip_summed is CHECKSUM_PARTIAL and it is udp packet, which has a dest port as the IANA assigned. the hardware is expected to do the checksum offload, but the hardware will not do the checksum offload when udp dest port is 6081. This patch fixes it by doing the checksum in software. Reported-by: Li Bing Signed-off-by: Yi Li --- drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c index 87776ce3539b..7d83c45369c2 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c @@ -21,6 +21,7 @@ #include #include #include +#include #include "hnae3.h" #include "hns3_enet.h" @@ -780,7 +781,7 @@ static int hns3_get_l4_protocol(struct sk_buff *skb, u8 *ol4_proto, * and it is udp packet, which has a dest port as the IANA assigned. * the hardware is expected to do the checksum offload, but the * hardware will not do the checksum offload when udp dest port is - * 4789. + * 4789 or 6081. */ static bool hns3_tunnel_csum_bug(struct sk_buff *skb) { @@ -789,7 +790,8 @@ static bool hns3_tunnel_csum_bug(struct sk_buff *skb) l4.hdr = skb_transport_header(skb); if (!(!skb->encapsulation && - l4.udp->dest == htons(IANA_VXLAN_UDP_PORT))) + (l4.udp->dest == htons(IANA_VXLAN_UDP_PORT) || + l4.udp->dest == htons(GENEVE_UDP_PORT)))) return false; skb_checksum_help(skb); -- 2.25.3