From: Greg Kroah-Hartman Date: Mon, 31 May 2021 08:18:44 +0000 (+0200) Subject: 5.12-stable patches X-Git-Tag: v4.4.271~29 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ac722fc3bee3645973c8674e4dcb5f35fdaf40c5;p=thirdparty%2Fkernel%2Fstable-queue.git 5.12-stable patches 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 --- 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 index 00000000000..0ff3a5b0c06 --- /dev/null +++ b/queue-5.12/bpftool-add-sock_release-help-info-for-cgroup-attach-prog-load-command.patch @@ -0,0 +1,110 @@ +From a8deba8547e39f26440101164a3bbc2899c5b305 Mon Sep 17 00:00:00 2001 +From: Liu Jian +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 + +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 +Signed-off-by: Daniel Borkmann +Reviewed-by: Quentin Monnet +Link: https://lore.kernel.org/bpf/20210525014139.323859-1-liujian56@huawei.com +Signed-off-by: Greg Kroah-Hartman +--- + 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 index 00000000000..bef20a0cdb5 --- /dev/null +++ b/queue-5.12/net-hns3-check-the-return-of-skb_checksum_help.patch @@ -0,0 +1,64 @@ +From 9bb5a495424fd4bfa672eb1f31481248562fa156 Mon Sep 17 00:00:00 2001 +From: Yunsheng Lin +Date: Tue, 18 May 2021 19:36:03 +0800 +Subject: net: hns3: check the return of skb_checksum_help() + +From: Yunsheng Lin + +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 +Signed-off-by: Huazhong Tan +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman +--- + 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 index 00000000000..855e316ef49 --- /dev/null +++ b/queue-5.12/samples-bpf-consider-frame-size-in-tx_only-of-xdpsock-sample.patch @@ -0,0 +1,36 @@ +From 3b80d106e110d39d3f678954d3b55078669cf07e Mon Sep 17 00:00:00 2001 +From: Magnus Karlsson +Date: Thu, 6 May 2021 14:43:49 +0200 +Subject: samples/bpf: Consider frame size in tx_only of xdpsock sample + +From: Magnus Karlsson + +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 +Signed-off-by: Daniel Borkmann +Acked-by: Maciej Fijalkowski +Link: https://lore.kernel.org/bpf/20210506124349.6666-1-magnus.karlsson@gmail.com +Signed-off-by: Greg Kroah-Hartman +--- + 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; + } + diff --git a/queue-5.12/series b/queue-5.12/series index ee5e9bf06cb..51ba00484a2 100644 --- a/queue-5.12/series +++ b/queue-5.12/series @@ -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