]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.12-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 31 May 2021 08:18:44 +0000 (10:18 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 31 May 2021 08:18:44 +0000 (10:18 +0200)
added patches:
bpftool-add-sock_release-help-info-for-cgroup-attach-prog-load-command.patch
net-hns3-check-the-return-of-skb_checksum_help.patch
samples-bpf-consider-frame-size-in-tx_only-of-xdpsock-sample.patch

queue-5.12/bpftool-add-sock_release-help-info-for-cgroup-attach-prog-load-command.patch [new file with mode: 0644]
queue-5.12/net-hns3-check-the-return-of-skb_checksum_help.patch [new file with mode: 0644]
queue-5.12/samples-bpf-consider-frame-size-in-tx_only-of-xdpsock-sample.patch [new file with mode: 0644]
queue-5.12/series

diff --git a/queue-5.12/bpftool-add-sock_release-help-info-for-cgroup-attach-prog-load-command.patch b/queue-5.12/bpftool-add-sock_release-help-info-for-cgroup-attach-prog-load-command.patch
new file mode 100644 (file)
index 0000000..0ff3a5b
--- /dev/null
@@ -0,0 +1,110 @@
+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"
diff --git a/queue-5.12/net-hns3-check-the-return-of-skb_checksum_help.patch b/queue-5.12/net-hns3-check-the-return-of-skb_checksum_help.patch
new file mode 100644 (file)
index 0000000..bef20a0
--- /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
+@@ -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;
diff --git a/queue-5.12/samples-bpf-consider-frame-size-in-tx_only-of-xdpsock-sample.patch b/queue-5.12/samples-bpf-consider-frame-size-in-tx_only-of-xdpsock-sample.patch
new file mode 100644 (file)
index 0000000..855e316
--- /dev/null
@@ -0,0 +1,36 @@
+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;
+       }
index ee5e9bf06cbc0254db3c91ce3368eed970ae875c..51ba00484a2f90370a60e2f47bccf2998be21eef 100644 (file)
@@ -287,3 +287,6 @@ sunrpc-more-fixes-for-backlog-congestion.patch
 thermal-drivers-qcom-fix-error-code-in-adc_tm5_get_d.patch
 kvm-x86-hyper-v-task-srcu-lock-when-accessing-kvm_me.patch
 xprtrdma-revert-586a0787ce35.patch
+samples-bpf-consider-frame-size-in-tx_only-of-xdpsock-sample.patch
+net-hns3-check-the-return-of-skb_checksum_help.patch
+bpftool-add-sock_release-help-info-for-cgroup-attach-prog-load-command.patch