]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
net: hns3: add a check for devcie's verion in hns3_tunnel_csum_bug()
authorHuazhong Tan <tanhuazhong@huawei.com>
Sat, 28 Nov 2020 03:51:49 +0000 (11:51 +0800)
committerJakub Kicinski <kuba@kernel.org>
Tue, 1 Dec 2020 23:16:31 +0000 (15:16 -0800)
For the device whose version is above V3(include V3), the hardware
can do checksum offload for the non-tunnel udp packet, who has
a dest port as the IANA assigned. So add a check for devcie's verion
in hns3_tunnel_csum_bug().

Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c

index 3ad7f98e5bc2205938b2bdf01a2d86a079beec56..1798c0a04b0efbc7692208b4126dd5eb65f7cb46 100644 (file)
@@ -828,8 +828,16 @@ static int hns3_get_l4_protocol(struct sk_buff *skb, u8 *ol4_proto,
  */
 static bool hns3_tunnel_csum_bug(struct sk_buff *skb)
 {
+       struct hns3_nic_priv *priv = netdev_priv(skb->dev);
+       struct hnae3_ae_dev *ae_dev = pci_get_drvdata(priv->ae_handle->pdev);
        union l4_hdr_info l4;
 
+       /* device version above V3(include V3), the hardware can
+        * do this checksum offload.
+        */
+       if (ae_dev->dev_version >= HNAE3_DEVICE_VERSION_V3)
+               return false;
+
        l4.hdr = skb_transport_header(skb);
 
        if (!(!skb->encapsulation &&