+++ /dev/null
-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
-
--- /dev/null
+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;
+ }
--- /dev/null
+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
+
--- /dev/null
+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
++}
--- /dev/null
+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"
+ }
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
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