]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.6-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 Jun 2024 10:58:08 +0000 (12:58 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 Jun 2024 10:58:08 +0000 (12:58 +0200)
added patches:
revert-fork-defer-linking-file-vma-until-vma-is-fully-initialized.patch
selftests-forwarding-avoid-failures-to-source-net-lib.sh.patch
selftests-net-add-lib.sh.patch
selftests-net-add-variable-ns_list-for-lib.sh.patch

queue-6.6/netfilter-use-flowlabel-flow-key-when-re-routing-man.patch [deleted file]
queue-6.6/revert-fork-defer-linking-file-vma-until-vma-is-fully-initialized.patch [new file with mode: 0644]
queue-6.6/selftests-forwarding-avoid-failures-to-source-net-lib.sh.patch [new file with mode: 0644]
queue-6.6/selftests-net-add-lib.sh.patch [new file with mode: 0644]
queue-6.6/selftests-net-add-variable-ns_list-for-lib.sh.patch [new file with mode: 0644]
queue-6.6/series

diff --git a/queue-6.6/netfilter-use-flowlabel-flow-key-when-re-routing-man.patch b/queue-6.6/netfilter-use-flowlabel-flow-key-when-re-routing-man.patch
deleted file mode 100644 (file)
index e290cf0..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-From b56061547b2a20efecb96084e4b6e7f33ecf28bc Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 6 Jun 2024 12:23:31 +0200
-Subject: netfilter: Use flowlabel flow key when re-routing mangled packets
-
-From: Florian Westphal <fw@strlen.de>
-
-[ Upstream commit 6f8f132cc7bac2ac76911e47d5baa378aafda4cb ]
-
-'ip6 dscp set $v' in an nftables outpute route chain has no effect.
-While nftables does detect the dscp change and calls the reroute hook.
-But ip6_route_me_harder never sets the dscp/flowlabel:
-flowlabel/dsfield routing rules are ignored and no reroute takes place.
-
-Thanks to Yi Chen for an excellent reproducer script that I used
-to validate this change.
-
-Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
-Reported-by: Yi Chen <yiche@redhat.com>
-Signed-off-by: Florian Westphal <fw@strlen.de>
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- net/ipv6/netfilter.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/net/ipv6/netfilter.c b/net/ipv6/netfilter.c
-index 857713d7a38a5..1df23cd31b767 100644
---- a/net/ipv6/netfilter.c
-+++ b/net/ipv6/netfilter.c
-@@ -36,6 +36,7 @@ int ip6_route_me_harder(struct net *net, struct sock *sk_partial, struct sk_buff
-               .flowi6_uid = sock_net_uid(net, sk),
-               .daddr = iph->daddr,
-               .saddr = iph->saddr,
-+              .flowlabel = ip6_flowinfo(iph),
-       };
-       int err;
--- 
-2.43.0
-
diff --git a/queue-6.6/revert-fork-defer-linking-file-vma-until-vma-is-fully-initialized.patch b/queue-6.6/revert-fork-defer-linking-file-vma-until-vma-is-fully-initialized.patch
new file mode 100644 (file)
index 0000000..bea7f8f
--- /dev/null
@@ -0,0 +1,66 @@
+From sam@gentoo.org  Wed Jun 19 12:52:04 2024
+From: Sam James <sam@gentoo.org>
+Date: Fri, 14 Jun 2024 09:50:59 +0100
+Subject: Revert "fork: defer linking file vma until vma is fully initialized"
+To: stable@vger.kernel.org
+Cc: Greg KH <gregkh@linuxfoundation.org>, leah.rumancik@gmail.com, Miaohe Lin <linmiaohe@huawei.com>, Sam James <sam@gentoo.org>
+Message-ID: <20240614085102.3198934-1-sam@gentoo.org>
+
+From: Sam James <sam@gentoo.org>
+
+This reverts commit cec11fa2eb512ebe3a459c185f4aca1d44059bbf which is commit
+35e351780fa9d8240dd6f7e4f245f9ea37e96c19 upstream.
+
+The backport is incomplete and causes xfstests failures. The consequences
+of the incomplete backport seem worse than the original issue, so pick
+the lesser evil and revert until a full backport is ready.
+
+Link: https://lore.kernel.org/stable/20240604004751.3883227-1-leah.rumancik@gmail.com/
+Reported-by: Leah Rumancik <leah.rumancik@gmail.com>
+Signed-off-by: Sam James <sam@gentoo.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ kernel/fork.c |   18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+--- a/kernel/fork.c
++++ b/kernel/fork.c
+@@ -727,15 +727,6 @@ static __latent_entropy int dup_mmap(str
+               } else if (anon_vma_fork(tmp, mpnt))
+                       goto fail_nomem_anon_vma_fork;
+               vm_flags_clear(tmp, VM_LOCKED_MASK);
+-              /*
+-               * Copy/update hugetlb private vma information.
+-               */
+-              if (is_vm_hugetlb_page(tmp))
+-                      hugetlb_dup_vma_private(tmp);
+-
+-              if (tmp->vm_ops && tmp->vm_ops->open)
+-                      tmp->vm_ops->open(tmp);
+-
+               file = tmp->vm_file;
+               if (file) {
+                       struct address_space *mapping = file->f_mapping;
+@@ -752,6 +743,12 @@ static __latent_entropy int dup_mmap(str
+                       i_mmap_unlock_write(mapping);
+               }
++              /*
++               * Copy/update hugetlb private vma information.
++               */
++              if (is_vm_hugetlb_page(tmp))
++                      hugetlb_dup_vma_private(tmp);
++
+               /* Link the vma into the MT */
+               if (vma_iter_bulk_store(&vmi, tmp))
+                       goto fail_nomem_vmi_store;
+@@ -760,6 +757,9 @@ static __latent_entropy int dup_mmap(str
+               if (!(tmp->vm_flags & VM_WIPEONFORK))
+                       retval = copy_page_range(tmp, mpnt);
++              if (tmp->vm_ops && tmp->vm_ops->open)
++                      tmp->vm_ops->open(tmp);
++
+               if (retval)
+                       goto loop_out;
+       }
diff --git a/queue-6.6/selftests-forwarding-avoid-failures-to-source-net-lib.sh.patch b/queue-6.6/selftests-forwarding-avoid-failures-to-source-net-lib.sh.patch
new file mode 100644 (file)
index 0000000..22eba22
--- /dev/null
@@ -0,0 +1,126 @@
+From po-hsu.lin@canonical.com Wed Jun 19 11:40:09 2024
+From: Po-Hsu Lin <po-hsu.lin@canonical.com>
+Date: Wed, 19 Jun 2024 17:39:24 +0800
+Subject: selftests: forwarding: Avoid failures to source net/lib.sh
+To: stable@vger.kernel.org
+Cc: po-hsu.lin@canonical.com, gregkh@linuxfoundation.org, petrm@nvidia.com, liuhangbin@gmail.com, pabeni@redhat.com, kuba@kernel.org, bpoirier@nvidia.com, idosch@nvidia.com
+Message-ID: <20240619093924.1291623-4-po-hsu.lin@canonical.com>
+
+From: Benjamin Poirier <bpoirier@nvidia.com>
+
+commit 2114e83381d3289a88378850f43069e79f848083 upstream.
+
+The expression "source ../lib.sh" added to net/forwarding/lib.sh in commit
+25ae948b4478 ("selftests/net: add lib.sh") does not work for tests outside
+net/forwarding which source net/forwarding/lib.sh (1). It also does not
+work in some cases where only a subset of tests are exported (2).
+
+Avoid the problems mentioned above by replacing the faulty expression with
+a copy of the content from net/lib.sh which is used by files under
+net/forwarding.
+
+A more thorough solution which avoids duplicating content between
+net/lib.sh and net/forwarding/lib.sh has been posted here:
+https://lore.kernel.org/netdev/20231222135836.992841-1-bpoirier@nvidia.com/
+
+The approach in the current patch is a stopgap solution to avoid submitting
+large changes at the eleventh hour of this development cycle.
+
+Example of problem 1)
+
+tools/testing/selftests/drivers/net/bonding$ ./dev_addr_lists.sh
+./net_forwarding_lib.sh: line 41: ../lib.sh: No such file or directory
+TEST: bonding cleanup mode active-backup                            [ OK ]
+TEST: bonding cleanup mode 802.3ad                                  [ OK ]
+TEST: bonding LACPDU multicast address to slave (from bond down)    [ OK ]
+TEST: bonding LACPDU multicast address to slave (from bond up)      [ OK ]
+
+An error message is printed but since the test does not use functions from
+net/lib.sh, the test results are not affected.
+
+Example of problem 2)
+
+tools/testing/selftests$ make install TARGETS="net/forwarding"
+tools/testing/selftests$ cd kselftest_install/net/forwarding/
+tools/testing/selftests/kselftest_install/net/forwarding$ ./pedit_ip.sh veth{0..3}
+lib.sh: line 41: ../lib.sh: No such file or directory
+TEST: ping                                                          [ OK ]
+TEST: ping6                                                         [ OK ]
+./pedit_ip.sh: line 135: busywait: command not found
+TEST: dev veth1 ingress pedit ip src set 198.51.100.1               [FAIL]
+        Expected to get 10 packets, but got .
+./pedit_ip.sh: line 135: busywait: command not found
+TEST: dev veth2 egress pedit ip src set 198.51.100.1                [FAIL]
+        Expected to get 10 packets, but got .
+./pedit_ip.sh: line 135: busywait: command not found
+TEST: dev veth1 ingress pedit ip dst set 198.51.100.1               [FAIL]
+        Expected to get 10 packets, but got .
+./pedit_ip.sh: line 135: busywait: command not found
+TEST: dev veth2 egress pedit ip dst set 198.51.100.1                [FAIL]
+        Expected to get 10 packets, but got .
+./pedit_ip.sh: line 135: busywait: command not found
+TEST: dev veth1 ingress pedit ip6 src set 2001:db8:2::1             [FAIL]
+        Expected to get 10 packets, but got .
+./pedit_ip.sh: line 135: busywait: command not found
+TEST: dev veth2 egress pedit ip6 src set 2001:db8:2::1              [FAIL]
+        Expected to get 10 packets, but got .
+./pedit_ip.sh: line 135: busywait: command not found
+TEST: dev veth1 ingress pedit ip6 dst set 2001:db8:2::1             [FAIL]
+        Expected to get 10 packets, but got .
+./pedit_ip.sh: line 135: busywait: command not found
+TEST: dev veth2 egress pedit ip6 dst set 2001:db8:2::1              [FAIL]
+        Expected to get 10 packets, but got .
+
+In this case, the test results are affected.
+
+Fixes: 25ae948b4478 ("selftests/net: add lib.sh")
+Suggested-by: Ido Schimmel <idosch@nvidia.com>
+Suggested-by: Petr Machata <petrm@nvidia.com>
+Reviewed-by: Ido Schimmel <idosch@nvidia.com>
+Tested-by: Petr Machata <petrm@nvidia.com>
+Signed-off-by: Benjamin Poirier <bpoirier@nvidia.com>
+Reviewed-by: Hangbin Liu <liuhangbin@gmail.com>
+Link: https://lore.kernel.org/r/20240104141109.100672-1-bpoirier@nvidia.com
+Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+Signed-off-by: Po-Hsu Lin <po-hsu.lin@canonical.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ tools/testing/selftests/net/forwarding/lib.sh |   27 +++++++++++++++++++++++++-
+ 1 file changed, 26 insertions(+), 1 deletion(-)
+
+--- a/tools/testing/selftests/net/forwarding/lib.sh
++++ b/tools/testing/selftests/net/forwarding/lib.sh
+@@ -38,7 +38,32 @@ if [[ -f $relative_path/forwarding.confi
+       source "$relative_path/forwarding.config"
+ fi
+-source ../lib.sh
++# Kselftest framework requirement - SKIP code is 4.
++ksft_skip=4
++
++busywait()
++{
++      local timeout=$1; shift
++
++      local start_time="$(date -u +%s%3N)"
++      while true
++      do
++              local out
++              out=$("$@")
++              local ret=$?
++              if ((!ret)); then
++                      echo -n "$out"
++                      return 0
++              fi
++
++              local current_time="$(date -u +%s%3N)"
++              if ((current_time - start_time > timeout)); then
++                      echo -n "$out"
++                      return 1
++              fi
++      done
++}
++
+ ##############################################################################
+ # Sanity checks
diff --git a/queue-6.6/selftests-net-add-lib.sh.patch b/queue-6.6/selftests-net-add-lib.sh.patch
new file mode 100644 (file)
index 0000000..d9bfdb0
--- /dev/null
@@ -0,0 +1,182 @@
+From stable+bounces-53805-greg=kroah.com@vger.kernel.org Wed Jun 19 11:40:21 2024
+From: Po-Hsu Lin <po-hsu.lin@canonical.com>
+Date: Wed, 19 Jun 2024 17:39:22 +0800
+Subject: selftests/net: add lib.sh
+To: stable@vger.kernel.org
+Cc: po-hsu.lin@canonical.com, gregkh@linuxfoundation.org, petrm@nvidia.com, liuhangbin@gmail.com, pabeni@redhat.com, kuba@kernel.org, bpoirier@nvidia.com, idosch@nvidia.com
+Message-ID: <20240619093924.1291623-2-po-hsu.lin@canonical.com>
+
+From: Hangbin Liu <liuhangbin@gmail.com>
+
+commit 25ae948b447881bf689d459cd5bd4629d9c04b20 upstream.
+
+Add a lib.sh for net selftests. This file can be used to define commonly
+used variables and functions. Some commonly used functions can be moved
+from forwarding/lib.sh to this lib file. e.g. busywait().
+
+Add function setup_ns() for user to create unique namespaces with given
+prefix name.
+
+Reviewed-by: Petr Machata <petrm@nvidia.com>
+Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
+Signed-off-by: Paolo Abeni <pabeni@redhat.com>
+[PHLin: add lib.sh to TEST_FILES directly as we already have upstream
+        commit 06efafd8 landed in 6.6.y]
+Signed-off-by: Po-Hsu Lin <po-hsu.lin@canonical.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ tools/testing/selftests/net/Makefile          |    2 
+ tools/testing/selftests/net/forwarding/lib.sh |   27 --------
+ tools/testing/selftests/net/lib.sh            |   85 ++++++++++++++++++++++++++
+ 3 files changed, 87 insertions(+), 27 deletions(-)
+ create mode 100644 tools/testing/selftests/net/lib.sh
+
+--- a/tools/testing/selftests/net/Makefile
++++ b/tools/testing/selftests/net/Makefile
+@@ -92,7 +92,7 @@ TEST_PROGS += test_vxlan_nolocalbypass.s
+ TEST_PROGS += test_bridge_backup_port.sh
+ TEST_FILES := settings
+-TEST_FILES += in_netns.sh net_helper.sh setup_loopback.sh setup_veth.sh
++TEST_FILES += in_netns.sh lib.sh net_helper.sh setup_loopback.sh setup_veth.sh
+ include ../lib.mk
+--- a/tools/testing/selftests/net/forwarding/lib.sh
++++ b/tools/testing/selftests/net/forwarding/lib.sh
+@@ -4,9 +4,6 @@
+ ##############################################################################
+ # Defines
+-# Kselftest framework requirement - SKIP code is 4.
+-ksft_skip=4
+-
+ # Can be overridden by the configuration file.
+ PING=${PING:=ping}
+ PING6=${PING6:=ping6}
+@@ -41,6 +38,7 @@ if [[ -f $relative_path/forwarding.confi
+       source "$relative_path/forwarding.config"
+ fi
++source ../lib.sh
+ ##############################################################################
+ # Sanity checks
+@@ -395,29 +393,6 @@ log_info()
+       echo "INFO: $msg"
+ }
+-busywait()
+-{
+-      local timeout=$1; shift
+-
+-      local start_time="$(date -u +%s%3N)"
+-      while true
+-      do
+-              local out
+-              out=$("$@")
+-              local ret=$?
+-              if ((!ret)); then
+-                      echo -n "$out"
+-                      return 0
+-              fi
+-
+-              local current_time="$(date -u +%s%3N)"
+-              if ((current_time - start_time > timeout)); then
+-                      echo -n "$out"
+-                      return 1
+-              fi
+-      done
+-}
+-
+ not()
+ {
+       "$@"
+--- /dev/null
++++ b/tools/testing/selftests/net/lib.sh
+@@ -0,0 +1,85 @@
++#!/bin/bash
++# SPDX-License-Identifier: GPL-2.0
++
++##############################################################################
++# Defines
++
++# Kselftest framework requirement - SKIP code is 4.
++ksft_skip=4
++
++##############################################################################
++# Helpers
++busywait()
++{
++      local timeout=$1; shift
++
++      local start_time="$(date -u +%s%3N)"
++      while true
++      do
++              local out
++              out=$("$@")
++              local ret=$?
++              if ((!ret)); then
++                      echo -n "$out"
++                      return 0
++              fi
++
++              local current_time="$(date -u +%s%3N)"
++              if ((current_time - start_time > timeout)); then
++                      echo -n "$out"
++                      return 1
++              fi
++      done
++}
++
++cleanup_ns()
++{
++      local ns=""
++      local errexit=0
++      local ret=0
++
++      # disable errexit temporary
++      if [[ $- =~ "e" ]]; then
++              errexit=1
++              set +e
++      fi
++
++      for ns in "$@"; do
++              ip netns delete "${ns}" &> /dev/null
++              if ! busywait 2 ip netns list \| grep -vq "^$ns$" &> /dev/null; then
++                      echo "Warn: Failed to remove namespace $ns"
++                      ret=1
++              fi
++      done
++
++      [ $errexit -eq 1 ] && set -e
++      return $ret
++}
++
++# setup netns with given names as prefix. e.g
++# setup_ns local remote
++setup_ns()
++{
++      local ns=""
++      local ns_name=""
++      local ns_list=""
++      for ns_name in "$@"; do
++              # Some test may setup/remove same netns multi times
++              if unset ${ns_name} 2> /dev/null; then
++                      ns="${ns_name,,}-$(mktemp -u XXXXXX)"
++                      eval readonly ${ns_name}="$ns"
++              else
++                      eval ns='$'${ns_name}
++                      cleanup_ns "$ns"
++
++              fi
++
++              if ! ip netns add "$ns"; then
++                      echo "Failed to create namespace $ns_name"
++                      cleanup_ns "$ns_list"
++                      return $ksft_skip
++              fi
++              ip -n "$ns" link set lo up
++              ns_list="$ns_list $ns"
++      done
++}
diff --git a/queue-6.6/selftests-net-add-variable-ns_list-for-lib.sh.patch b/queue-6.6/selftests-net-add-variable-ns_list-for-lib.sh.patch
new file mode 100644 (file)
index 0000000..4fafc9b
--- /dev/null
@@ -0,0 +1,54 @@
+From stable+bounces-53804-greg=kroah.com@vger.kernel.org Wed Jun 19 11:40:18 2024
+From: Po-Hsu Lin <po-hsu.lin@canonical.com>
+Date: Wed, 19 Jun 2024 17:39:23 +0800
+Subject: selftests/net: add variable NS_LIST for lib.sh
+To: stable@vger.kernel.org
+Cc: po-hsu.lin@canonical.com, gregkh@linuxfoundation.org, petrm@nvidia.com, liuhangbin@gmail.com, pabeni@redhat.com, kuba@kernel.org, bpoirier@nvidia.com, idosch@nvidia.com
+Message-ID: <20240619093924.1291623-3-po-hsu.lin@canonical.com>
+
+From: Hangbin Liu <liuhangbin@gmail.com>
+
+commit b6925b4ed57cccf42ca0fb46c7446f0859e7ad4b upstream.
+
+Add a global variable NS_LIST to store all the namespaces that setup_ns
+created, so the caller could call cleanup_all_ns() instead of remember
+all the netns names when using cleanup_ns().
+
+Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
+Link: https://lore.kernel.org/r/20231213060856.4030084-2-liuhangbin@gmail.com
+Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+Signed-off-by: Po-Hsu Lin <po-hsu.lin@canonical.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ tools/testing/selftests/net/lib.sh |    8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/tools/testing/selftests/net/lib.sh
++++ b/tools/testing/selftests/net/lib.sh
+@@ -6,6 +6,8 @@
+ # Kselftest framework requirement - SKIP code is 4.
+ ksft_skip=4
++# namespace list created by setup_ns
++NS_LIST=""
+ ##############################################################################
+ # Helpers
+@@ -56,6 +58,11 @@ cleanup_ns()
+       return $ret
+ }
++cleanup_all_ns()
++{
++      cleanup_ns $NS_LIST
++}
++
+ # setup netns with given names as prefix. e.g
+ # setup_ns local remote
+ setup_ns()
+@@ -82,4 +89,5 @@ setup_ns()
+               ip -n "$ns" link set lo up
+               ns_list="$ns_list $ns"
+       done
++      NS_LIST="$NS_LIST $ns_list"
+ }
index 5454979fc60a132871992d1bd680bdb35c94b706..2871d41afc65936a7ee8a851b477ebcbdbd45d2a 100644 (file)
@@ -163,7 +163,6 @@ bluetooth-l2cap-fix-rejecting-l2cap_conn_param_updat.patch
 bluetooth-fix-connection-setup-in-l2cap_connect.patch
 netfilter-nft_inner-validate-mandatory-meta-and-payl.patch
 netfilter-ipset-fix-race-between-namespace-cleanup-a.patch
-netfilter-use-flowlabel-flow-key-when-re-routing-man.patch
 x86-asm-use-c-n-instead-of-p-operand-modifier-in-asm.patch
 x86-uaccess-fix-missed-zeroing-of-ia32-u64-get_user-.patch
 scsi-ufs-core-quiesce-request-queues-before-checking.patch
@@ -253,3 +252,7 @@ nilfs2-fix-potential-kernel-bug-due-to-lack-of-writeback-flag-waiting.patch
 tick-nohz_full-don-t-abuse-smp_call_function_single-in-tick_setup_device.patch
 mm-huge_memory-don-t-unpoison-huge_zero_folio.patch
 serial-8250_pxa-configure-tx_loadsz-to-match-fifo-irq-level.patch
+revert-fork-defer-linking-file-vma-until-vma-is-fully-initialized.patch
+selftests-net-add-lib.sh.patch
+selftests-net-add-variable-ns_list-for-lib.sh.patch
+selftests-forwarding-avoid-failures-to-source-net-lib.sh.patch