--- /dev/null
+From a8deba8547e39f26440101164a3bbc2899c5b305 Mon Sep 17 00:00:00 2001
+From: Liu Jian <liujian56@huawei.com>
+Date: Tue, 25 May 2021 09:41:39 +0800
+Subject: bpftool: Add sock_release help info for cgroup attach/prog load command
+
+From: Liu Jian <liujian56@huawei.com>
+
+commit a8deba8547e39f26440101164a3bbc2899c5b305 upstream.
+
+The help information was not added at the time when the function got added.
+Fix this and add the missing information to its cli, documentation and bash
+completion.
+
+Fixes: db94cc0b4805 ("bpftool: Add support for BPF_CGROUP_INET_SOCK_RELEASE")
+Signed-off-by: Liu Jian <liujian56@huawei.com>
+Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
+Reviewed-by: Quentin Monnet <quentin@isovalent.com>
+Link: https://lore.kernel.org/bpf/20210525014139.323859-1-liujian56@huawei.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ tools/bpf/bpftool/Documentation/bpftool-cgroup.rst | 4 +++-
+ tools/bpf/bpftool/Documentation/bpftool-prog.rst | 2 +-
+ tools/bpf/bpftool/bash-completion/bpftool | 6 +++---
+ tools/bpf/bpftool/cgroup.c | 3 ++-
+ tools/bpf/bpftool/prog.c | 2 +-
+ 5 files changed, 10 insertions(+), 7 deletions(-)
+
+--- a/tools/bpf/bpftool/Documentation/bpftool-cgroup.rst
++++ b/tools/bpf/bpftool/Documentation/bpftool-cgroup.rst
+@@ -30,7 +30,8 @@ CGROUP COMMANDS
+ | *ATTACH_TYPE* := { **ingress** | **egress** | **sock_create** | **sock_ops** | **device** |
+ | **bind4** | **bind6** | **post_bind4** | **post_bind6** | **connect4** | **connect6** |
+ | **getpeername4** | **getpeername6** | **getsockname4** | **getsockname6** | **sendmsg4** |
+-| **sendmsg6** | **recvmsg4** | **recvmsg6** | **sysctl** | **getsockopt** | **setsockopt** }
++| **sendmsg6** | **recvmsg4** | **recvmsg6** | **sysctl** | **getsockopt** | **setsockopt** |
++| **sock_release** }
+ | *ATTACH_FLAGS* := { **multi** | **override** }
+
+ DESCRIPTION
+@@ -106,6 +107,7 @@ DESCRIPTION
+ **getpeername6** call to getpeername(2) for an inet6 socket (since 5.8);
+ **getsockname4** call to getsockname(2) for an inet4 socket (since 5.8);
+ **getsockname6** call to getsockname(2) for an inet6 socket (since 5.8).
++ **sock_release** closing an userspace inet socket (since 5.9).
+
+ **bpftool cgroup detach** *CGROUP* *ATTACH_TYPE* *PROG*
+ Detach *PROG* from the cgroup *CGROUP* and attach type
+--- a/tools/bpf/bpftool/Documentation/bpftool-prog.rst
++++ b/tools/bpf/bpftool/Documentation/bpftool-prog.rst
+@@ -44,7 +44,7 @@ PROG COMMANDS
+ | **cgroup/connect4** | **cgroup/connect6** | **cgroup/getpeername4** | **cgroup/getpeername6** |
+ | **cgroup/getsockname4** | **cgroup/getsockname6** | **cgroup/sendmsg4** | **cgroup/sendmsg6** |
+ | **cgroup/recvmsg4** | **cgroup/recvmsg6** | **cgroup/sysctl** |
+-| **cgroup/getsockopt** | **cgroup/setsockopt** |
++| **cgroup/getsockopt** | **cgroup/setsockopt** | **cgroup/sock_release** |
+ | **struct_ops** | **fentry** | **fexit** | **freplace** | **sk_lookup**
+ | }
+ | *ATTACH_TYPE* := {
+--- a/tools/bpf/bpftool/bash-completion/bpftool
++++ b/tools/bpf/bpftool/bash-completion/bpftool
+@@ -478,7 +478,7 @@ _bpftool()
+ cgroup/recvmsg4 cgroup/recvmsg6 \
+ cgroup/post_bind4 cgroup/post_bind6 \
+ cgroup/sysctl cgroup/getsockopt \
+- cgroup/setsockopt struct_ops \
++ cgroup/setsockopt cgroup/sock_release struct_ops \
+ fentry fexit freplace sk_lookup" -- \
+ "$cur" ) )
+ return 0
+@@ -1008,7 +1008,7 @@ _bpftool()
+ device bind4 bind6 post_bind4 post_bind6 connect4 connect6 \
+ getpeername4 getpeername6 getsockname4 getsockname6 \
+ sendmsg4 sendmsg6 recvmsg4 recvmsg6 sysctl getsockopt \
+- setsockopt'
++ setsockopt sock_release'
+ local ATTACH_FLAGS='multi override'
+ local PROG_TYPE='id pinned tag name'
+ case $prev in
+@@ -1019,7 +1019,7 @@ _bpftool()
+ ingress|egress|sock_create|sock_ops|device|bind4|bind6|\
+ post_bind4|post_bind6|connect4|connect6|getpeername4|\
+ getpeername6|getsockname4|getsockname6|sendmsg4|sendmsg6|\
+- recvmsg4|recvmsg6|sysctl|getsockopt|setsockopt)
++ recvmsg4|recvmsg6|sysctl|getsockopt|setsockopt|sock_release)
+ COMPREPLY=( $( compgen -W "$PROG_TYPE" -- \
+ "$cur" ) )
+ return 0
+--- a/tools/bpf/bpftool/cgroup.c
++++ b/tools/bpf/bpftool/cgroup.c
+@@ -28,7 +28,8 @@
+ " connect6 | getpeername4 | getpeername6 |\n" \
+ " getsockname4 | getsockname6 | sendmsg4 |\n" \
+ " sendmsg6 | recvmsg4 | recvmsg6 |\n" \
+- " sysctl | getsockopt | setsockopt }"
++ " sysctl | getsockopt | setsockopt |\n" \
++ " sock_release }"
+
+ static unsigned int query_flags;
+
+--- a/tools/bpf/bpftool/prog.c
++++ b/tools/bpf/bpftool/prog.c
+@@ -2137,7 +2137,7 @@ static int do_help(int argc, char **argv
+ " cgroup/getpeername4 | cgroup/getpeername6 |\n"
+ " cgroup/getsockname4 | cgroup/getsockname6 | cgroup/sendmsg4 |\n"
+ " cgroup/sendmsg6 | cgroup/recvmsg4 | cgroup/recvmsg6 |\n"
+- " cgroup/getsockopt | cgroup/setsockopt |\n"
++ " cgroup/getsockopt | cgroup/setsockopt | cgroup/sock_release |\n"
+ " struct_ops | fentry | fexit | freplace | sk_lookup }\n"
+ " ATTACH_TYPE := { msg_verdict | stream_verdict | stream_parser |\n"
+ " flow_dissector }\n"
--- /dev/null
+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
+@@ -840,8 +840,6 @@ static bool hns3_tunnel_csum_bug(struct
+ l4.udp->dest == htons(4790))))
+ return false;
+
+- skb_checksum_help(skb);
+-
+ return true;
+ }
+
+@@ -919,8 +917,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);
+@@ -965,7 +962,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,
+@@ -990,8 +987,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;
--- /dev/null
+From 3b80d106e110d39d3f678954d3b55078669cf07e Mon Sep 17 00:00:00 2001
+From: Magnus Karlsson <magnus.karlsson@intel.com>
+Date: Thu, 6 May 2021 14:43:49 +0200
+Subject: samples/bpf: Consider frame size in tx_only of xdpsock sample
+
+From: Magnus Karlsson <magnus.karlsson@intel.com>
+
+commit 3b80d106e110d39d3f678954d3b55078669cf07e upstream.
+
+Fix the tx_only micro-benchmark in xdpsock to take frame size into
+consideration. It was hardcoded to the default value of frame_size
+which is 4K. Changing this on the command line to 2K made half of the
+packets illegal as they were outside the umem and were therefore
+discarded by the kernel.
+
+Fixes: 46738f73ea4f ("samples/bpf: add use of need_wakeup flag in xdpsock")
+Signed-off-by: Magnus Karlsson <magnus.karlsson@intel.com>
+Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
+Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
+Link: https://lore.kernel.org/bpf/20210506124349.6666-1-magnus.karlsson@gmail.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ samples/bpf/xdpsock_user.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/samples/bpf/xdpsock_user.c
++++ b/samples/bpf/xdpsock_user.c
+@@ -1282,7 +1282,7 @@ static void tx_only(struct xsk_socket_in
+ for (i = 0; i < batch_size; i++) {
+ struct xdp_desc *tx_desc = xsk_ring_prod__tx_desc(&xsk->tx,
+ idx + i);
+- tx_desc->addr = (*frame_nb + i) << XSK_UMEM__DEFAULT_FRAME_SHIFT;
++ tx_desc->addr = (*frame_nb + i) * opt_xsk_frame_size;
+ tx_desc->len = PKT_SIZE;
+ }
+