]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.1-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 22 Jun 2023 09:19:55 +0000 (11:19 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 22 Jun 2023 09:19:55 +0000 (11:19 +0200)
added patches:
selftests-mptcp-diag-skip-listen-tests-if-not-supported.patch

queue-6.1/selftests-mptcp-diag-skip-listen-tests-if-not-supported.patch [new file with mode: 0644]
queue-6.1/series

diff --git a/queue-6.1/selftests-mptcp-diag-skip-listen-tests-if-not-supported.patch b/queue-6.1/selftests-mptcp-diag-skip-listen-tests-if-not-supported.patch
new file mode 100644 (file)
index 0000000..bab41e2
--- /dev/null
@@ -0,0 +1,128 @@
+From dc97251bf0b70549c76ba261516c01b8096771c5 Mon Sep 17 00:00:00 2001
+From: Matthieu Baerts <matthieu.baerts@tessares.net>
+Date: Thu, 8 Jun 2023 18:38:47 +0200
+Subject: selftests: mptcp: diag: skip listen tests if not supported
+
+From: Matthieu Baerts <matthieu.baerts@tessares.net>
+
+commit dc97251bf0b70549c76ba261516c01b8096771c5 upstream.
+
+Selftests are supposed to run on any kernels, including the old ones not
+supporting all MPTCP features.
+
+One of them is the listen diag dump support introduced by
+commit 4fa39b701ce9 ("mptcp: listen diag dump support").
+
+It looks like there is no good pre-check to do here, i.e. dedicated
+function available in kallsyms. Instead, we try to get info if nothing
+is returned, the test is marked as skipped.
+
+That's not ideal because something could be wrong with the feature and
+instead of reporting an error, the test could be marked as skipped. If
+we know in advanced that the feature is supposed to be supported, the
+tester can set SELFTESTS_MPTCP_LIB_EXPECT_ALL_FEATURES env var to 1: in
+this case the test will report an error instead of marking the test as
+skipped if nothing is returned.
+
+Link: https://github.com/multipath-tcp/mptcp_net-next/issues/368
+Fixes: f2ae0fa68e28 ("selftests/mptcp: add diag listen tests")
+Cc: stable@vger.kernel.org
+Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
+Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ tools/testing/selftests/net/mptcp/diag.sh |   47 +++++++++++++++---------------
+ 1 file changed, 24 insertions(+), 23 deletions(-)
+
+--- a/tools/testing/selftests/net/mptcp/diag.sh
++++ b/tools/testing/selftests/net/mptcp/diag.sh
+@@ -42,27 +42,39 @@ fi
+ __chk_nr()
+ {
+-      local condition="$1"
++      local command="$1"
+       local expected=$2
+-      local msg nr
++      local msg="$3"
++      local skip="${4:-SKIP}"
++      local nr
+-      shift 2
+-      msg=$*
+-      nr=$(ss -inmHMN $ns | $condition)
++      nr=$(eval $command)
+       printf "%-50s" "$msg"
+       if [ $nr != $expected ]; then
+-              echo "[ fail ] expected $expected found $nr"
+-              ret=$test_cnt
++              if [ $nr = "$skip" ] && ! mptcp_lib_expect_all_features; then
++                      echo "[ skip ] Feature probably not supported"
++              else
++                      echo "[ fail ] expected $expected found $nr"
++                      ret=$test_cnt
++              fi
+       else
+               echo "[  ok  ]"
+       fi
+       test_cnt=$((test_cnt+1))
+ }
++__chk_msk_nr()
++{
++      local condition=$1
++      shift 1
++
++      __chk_nr "ss -inmHMN $ns | $condition" "$@"
++}
++
+ chk_msk_nr()
+ {
+-      __chk_nr "grep -c token:" $*
++      __chk_msk_nr "grep -c token:" "$@"
+ }
+ wait_msk_nr()
+@@ -100,37 +112,26 @@ wait_msk_nr()
+ chk_msk_fallback_nr()
+ {
+-              __chk_nr "grep -c fallback" $*
++      __chk_msk_nr "grep -c fallback" "$@"
+ }
+ chk_msk_remote_key_nr()
+ {
+-              __chk_nr "grep -c remote_key" $*
++      __chk_msk_nr "grep -c remote_key" "$@"
+ }
+ __chk_listen()
+ {
+       local filter="$1"
+       local expected=$2
++      local msg="$3"
+-      shift 2
+-      msg=$*
+-
+-      nr=$(ss -N $ns -Ml "$filter" | grep -c LISTEN)
+-      printf "%-50s" "$msg"
+-
+-      if [ $nr != $expected ]; then
+-              echo "[ fail ] expected $expected found $nr"
+-              ret=$test_cnt
+-      else
+-              echo "[  ok  ]"
+-      fi
++      __chk_nr "ss -N $ns -Ml '$filter' | grep -c LISTEN" "$expected" "$msg" 0
+ }
+ chk_msk_listen()
+ {
+       lport=$1
+-      local msg="check for listen socket"
+       # destination port search should always return empty list
+       __chk_listen "dport $lport" 0 "listen match for dport $lport"
index 77254e233d57c3ffe55dd644d58f3285975b2657..1e1472248bd9d204e542944a09b0f1ca163d2272 100644 (file)
@@ -34,3 +34,4 @@ selftests-mptcp-join-skip-backup-if-set-flag-on-id-not-supported.patch
 selftests-mptcp-join-skip-fullmesh-flag-tests-if-not-supported.patch
 selftests-mptcp-join-skip-mpc-backups-tests-if-not-supported.patch
 selftests-mount_setattr-fix-redefine-struct-mount_attr-build-error.patch
+selftests-mptcp-diag-skip-listen-tests-if-not-supported.patch