From: Huazhong Tan Date: Sat, 28 Nov 2020 03:51:49 +0000 (+0800) Subject: net: hns3: add a check for devcie's verion in hns3_tunnel_csum_bug() X-Git-Tag: howlett/maple_spf/20210104~359^2~147^2~1 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=ade36ccef1d7d830a17bbe7eba3a6223e81cdc80;p=users%2Fjedix%2Flinux-maple.git net: hns3: add a check for devcie's verion in hns3_tunnel_csum_bug() 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 Signed-off-by: Jakub Kicinski --- diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c index 3ad7f98e5bc22..1798c0a04b0ef 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c @@ -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 &&