]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 31 May 2021 08:18:13 +0000 (10:18 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 31 May 2021 08:18:13 +0000 (10:18 +0200)
added patches:
net-hns3-check-the-return-of-skb_checksum_help.patch

queue-5.4/net-hns3-check-the-return-of-skb_checksum_help.patch [new file with mode: 0644]
queue-5.4/series

diff --git a/queue-5.4/net-hns3-check-the-return-of-skb_checksum_help.patch b/queue-5.4/net-hns3-check-the-return-of-skb_checksum_help.patch
new file mode 100644 (file)
index 0000000..667c951
--- /dev/null
@@ -0,0 +1,64 @@
+From 9bb5a495424fd4bfa672eb1f31481248562fa156 Mon Sep 17 00:00:00 2001
+From: Yunsheng Lin <linyunsheng@huawei.com>
+Date: Tue, 18 May 2021 19:36:03 +0800
+Subject: net: hns3: check the return of skb_checksum_help()
+
+From: Yunsheng Lin <linyunsheng@huawei.com>
+
+commit 9bb5a495424fd4bfa672eb1f31481248562fa156 upstream.
+
+Currently skb_checksum_help()'s return is ignored, but it may
+return error when it fails to allocate memory when linearizing.
+
+So adds checking for the return of skb_checksum_help().
+
+Fixes: 76ad4f0ee747("net: hns3: Add support of HNS3 Ethernet Driver for hip08 SoC")
+Fixes: 3db084d28dc0("net: hns3: Fix for vxlan tx checksum bug")
+Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
+Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/ethernet/hisilicon/hns3/hns3_enet.c |   10 +++-------
+ 1 file changed, 3 insertions(+), 7 deletions(-)
+
+--- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
++++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
+@@ -810,8 +810,6 @@ static bool hns3_tunnel_csum_bug(struct
+             l4.udp->dest == htons(4790))))
+               return false;
+-      skb_checksum_help(skb);
+-
+       return true;
+ }
+@@ -889,8 +887,7 @@ static int hns3_set_l2l3l4(struct sk_buf
+                       /* the stack computes the IP header already,
+                        * driver calculate l4 checksum when not TSO.
+                        */
+-                      skb_checksum_help(skb);
+-                      return 0;
++                      return skb_checksum_help(skb);
+               }
+               hns3_set_outer_l2l3l4(skb, ol4_proto, ol_type_vlan_len_msec);
+@@ -935,7 +932,7 @@ static int hns3_set_l2l3l4(struct sk_buf
+               break;
+       case IPPROTO_UDP:
+               if (hns3_tunnel_csum_bug(skb))
+-                      break;
++                      return skb_checksum_help(skb);
+               hns3_set_field(*type_cs_vlan_tso, HNS3_TXD_L4CS_B, 1);
+               hns3_set_field(*type_cs_vlan_tso, HNS3_TXD_L4T_S,
+@@ -960,8 +957,7 @@ static int hns3_set_l2l3l4(struct sk_buf
+               /* the stack computes the IP header already,
+                * driver calculate l4 checksum when not TSO.
+                */
+-              skb_checksum_help(skb);
+-              return 0;
++              return skb_checksum_help(skb);
+       }
+       return 0;
index 7318873b59410f1b2963b62fb9b89ccc4a1a4090..420dba2976185a9d8b5eb30eaa2aab4db2162bed 100644 (file)
@@ -170,3 +170,4 @@ mips-ralink-export-rt_sysc_membase-for-rt2880_wdt.c.patch
 drm-i915-display-fix-compiler-warning-about-array-overrun.patch
 i915-fix-build-warning-in-intel_dp_get_link_status.patch
 drivers-net-ethernet-clean-up-unused-assignments.patch
+net-hns3-check-the-return-of-skb_checksum_help.patch