]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 6.6
authorSasha Levin <sashal@kernel.org>
Thu, 27 Jun 2024 18:51:38 +0000 (14:51 -0400)
committerSasha Levin <sashal@kernel.org>
Thu, 27 Jun 2024 18:51:38 +0000 (14:51 -0400)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-6.6/mips-pci-lantiq-restore-reset-gpio-polarity.patch [new file with mode: 0644]
queue-6.6/selftests-mptcp-print_test-out-of-verify_listener_ev.patch [new file with mode: 0644]
queue-6.6/selftests-mptcp-userspace_pm-fixed-subtest-names.patch [new file with mode: 0644]
queue-6.6/series

diff --git a/queue-6.6/mips-pci-lantiq-restore-reset-gpio-polarity.patch b/queue-6.6/mips-pci-lantiq-restore-reset-gpio-polarity.patch
new file mode 100644 (file)
index 0000000..6e0c4b2
--- /dev/null
@@ -0,0 +1,73 @@
+From cf5ece923e1d804b10de1bd03d3383336e456370 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 7 Jun 2024 11:04:00 +0200
+Subject: MIPS: pci: lantiq: restore reset gpio polarity
+
+From: Martin Schiller <ms@dev.tdt.de>
+
+[ Upstream commit 277a0363120276645ae598d8d5fea7265e076ae9 ]
+
+Commit 90c2d2eb7ab5 ("MIPS: pci: lantiq: switch to using gpiod API") not
+only switched to the gpiod API, but also inverted / changed the polarity
+of the GPIO.
+
+According to the PCI specification, the RST# pin is an active-low
+signal. However, most of the device trees that have been widely used for
+a long time (mainly in the openWrt project) define this GPIO as
+active-high and the old driver code inverted the signal internally.
+
+Apparently there are actually boards where the reset gpio must be
+operated inverted. For this reason, we cannot use the GPIOD_OUT_LOW/HIGH
+flag for initialization. Instead, we must explicitly set the gpio to
+value 1 in order to take into account any "GPIO_ACTIVE_LOW" flag that
+may have been set.
+
+In order to remain compatible with all these existing device trees, we
+should therefore keep the logic as it was before the commit.
+
+Fixes: 90c2d2eb7ab5 ("MIPS: pci: lantiq: switch to using gpiod API")
+Cc: stable@vger.kernel.org
+Signed-off-by: Martin Schiller <ms@dev.tdt.de>
+Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/mips/pci/pci-lantiq.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/arch/mips/pci/pci-lantiq.c b/arch/mips/pci/pci-lantiq.c
+index 80f7293166bb7..0dabee7a1c511 100644
+--- a/arch/mips/pci/pci-lantiq.c
++++ b/arch/mips/pci/pci-lantiq.c
+@@ -124,14 +124,14 @@ static int ltq_pci_startup(struct platform_device *pdev)
+               clk_disable(clk_external);
+       /* setup reset gpio used by pci */
+-      reset_gpio = devm_gpiod_get_optional(&pdev->dev, "reset",
+-                                           GPIOD_OUT_LOW);
++      reset_gpio = devm_gpiod_get_optional(&pdev->dev, "reset", GPIOD_ASIS);
+       error = PTR_ERR_OR_ZERO(reset_gpio);
+       if (error) {
+               dev_err(&pdev->dev, "failed to request gpio: %d\n", error);
+               return error;
+       }
+       gpiod_set_consumer_name(reset_gpio, "pci_reset");
++      gpiod_direction_output(reset_gpio, 1);
+       /* enable auto-switching between PCI and EBU */
+       ltq_pci_w32(0xa, PCI_CR_CLK_CTRL);
+@@ -194,10 +194,10 @@ static int ltq_pci_startup(struct platform_device *pdev)
+       /* toggle reset pin */
+       if (reset_gpio) {
+-              gpiod_set_value_cansleep(reset_gpio, 1);
++              gpiod_set_value_cansleep(reset_gpio, 0);
+               wmb();
+               mdelay(1);
+-              gpiod_set_value_cansleep(reset_gpio, 0);
++              gpiod_set_value_cansleep(reset_gpio, 1);
+       }
+       return 0;
+ }
+-- 
+2.43.0
+
diff --git a/queue-6.6/selftests-mptcp-print_test-out-of-verify_listener_ev.patch b/queue-6.6/selftests-mptcp-print_test-out-of-verify_listener_ev.patch
new file mode 100644 (file)
index 0000000..b873507
--- /dev/null
@@ -0,0 +1,61 @@
+From 22667c16b979622ea26d8387f1134ce60bf7cf19 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 8 Mar 2024 23:10:19 +0100
+Subject: selftests: mptcp: print_test out of verify_listener_events
+
+From: Geliang Tang <tanggeliang@kylinos.cn>
+
+[ Upstream commit 8ebb44196585d3c9405fba1e409cf2312bca30ac ]
+
+verify_listener_events() helper will be exported into mptcp_lib.sh as a
+public function, but print_test() is invoked in it, which is a private
+function in userspace_pm.sh only. So this patch moves print_test() out of
+verify_listener_events().
+
+Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
+Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
+Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
+Link: https://lore.kernel.org/r/20240308-upstream-net-next-20240308-selftests-mptcp-unification-v1-12-4f42c347b653@kernel.org
+Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+Stable-dep-of: e874557fce1b ("selftests: mptcp: userspace_pm: fixed subtest names")
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ tools/testing/selftests/net/mptcp/userspace_pm.sh | 8 ++------
+ 1 file changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/testing/selftests/net/mptcp/userspace_pm.sh
+index 4c62114de0637..305a0f6716c38 100755
+--- a/tools/testing/selftests/net/mptcp/userspace_pm.sh
++++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh
+@@ -917,12 +917,6 @@ verify_listener_events()
+       local saddr
+       local sport
+-      if [ $e_type = $LISTENER_CREATED ]; then
+-              print_test "CREATE_LISTENER $e_saddr:$e_sport"
+-      elif [ $e_type = $LISTENER_CLOSED ]; then
+-              print_test "CLOSE_LISTENER $e_saddr:$e_sport"
+-      fi
+-
+       type=$(mptcp_lib_evts_get_info type $evt $e_type)
+       family=$(mptcp_lib_evts_get_info family $evt $e_type)
+       sport=$(mptcp_lib_evts_get_info sport $evt $e_type)
+@@ -954,6 +948,7 @@ test_listener()
+       local listener_pid=$!
+       sleep 0.5
++      print_test "CREATE_LISTENER 10.0.2.2:$client4_port"
+       verify_listener_events $client_evts $LISTENER_CREATED $AF_INET 10.0.2.2 $client4_port
+       # ADD_ADDR from client to server machine reusing the subflow port
+@@ -970,6 +965,7 @@ test_listener()
+       mptcp_lib_kill_wait $listener_pid
+       sleep 0.5
++      print_test "CLOSE_LISTENER 10.0.2.2:$client4_port"
+       verify_listener_events $client_evts $LISTENER_CLOSED $AF_INET 10.0.2.2 $client4_port
+ }
+-- 
+2.43.0
+
diff --git a/queue-6.6/selftests-mptcp-userspace_pm-fixed-subtest-names.patch b/queue-6.6/selftests-mptcp-userspace_pm-fixed-subtest-names.patch
new file mode 100644 (file)
index 0000000..87fc860
--- /dev/null
@@ -0,0 +1,239 @@
+From 104f7ee1356550a392f2c432b44c297137e89eaf Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 14 Jun 2024 19:15:29 +0200
+Subject: selftests: mptcp: userspace_pm: fixed subtest names
+
+From: Matthieu Baerts (NGI0) <matttbe@kernel.org>
+
+[ Upstream commit e874557fce1b6023efafd523aee0c347bf7f1694 ]
+
+It is important to have fixed (sub)test names in TAP, because these
+names are used to identify them. If they are not fixed, tracking cannot
+be done.
+
+Some subtests from the userspace_pm selftest were using random numbers
+in their names: the client and server address IDs from $RANDOM, and the
+client port number randomly picked by the kernel when creating the
+connection. These values have been replaced by 'client' and 'server'
+words: that's even more helpful than showing random numbers. Note that
+the addresses IDs are incremented and decremented in the test: +1 or -1
+are then displayed in these cases.
+
+Not to loose info that can be useful for debugging in case of issues,
+these random numbers are now displayed at the beginning of the test.
+
+Fixes: f589234e1af0 ("selftests: mptcp: userspace_pm: format subtests results in TAP")
+Cc: stable@vger.kernel.org
+Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
+Reviewed-by: Simon Horman <horms@kernel.org>
+Link: https://lore.kernel.org/r/20240614-upstream-net-20240614-selftests-mptcp-uspace-pm-fixed-test-names-v1-1-460ad3edb429@kernel.org
+Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ .../selftests/net/mptcp/userspace_pm.sh       | 46 +++++++++++--------
+ 1 file changed, 28 insertions(+), 18 deletions(-)
+
+diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/testing/selftests/net/mptcp/userspace_pm.sh
+index 305a0f6716c38..4e58291550498 100755
+--- a/tools/testing/selftests/net/mptcp/userspace_pm.sh
++++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh
+@@ -184,10 +184,12 @@ make_connection()
+       local is_v6=$1
+       local app_port=$app4_port
+       local connect_addr="10.0.1.1"
++      local client_addr="10.0.1.2"
+       local listen_addr="0.0.0.0"
+       if [ "$is_v6" = "v6" ]
+       then
+               connect_addr="dead:beef:1::1"
++              client_addr="dead:beef:1::2"
+               listen_addr="::"
+               app_port=$app6_port
+       else
+@@ -249,6 +251,7 @@ make_connection()
+                  [ "$server_serverside" = 1 ]
+       then
+               test_pass
++              print_title "Connection info: ${client_addr}:${client_port} -> ${connect_addr}:${app_port}"
+       else
+               test_fail "Expected tokens (c:${client_token} - s:${server_token}) and server (c:${client_serverside} - s:${server_serverside})"
+               mptcp_lib_result_print_all_tap
+@@ -369,7 +372,7 @@ test_announce()
+       ip netns exec "$ns2"\
+          ./pm_nl_ctl ann 10.0.2.2 token "$client4_token" id $client_addr_id dev\
+          ns2eth1
+-      print_test "ADD_ADDR id:${client_addr_id} 10.0.2.2 (ns2) => ns1, reuse port"
++      print_test "ADD_ADDR id:client 10.0.2.2 (ns2) => ns1, reuse port"
+       sleep 0.5
+       verify_announce_event $server_evts $ANNOUNCED $server4_token "10.0.2.2" $client_addr_id \
+                             "$client4_port"
+@@ -378,7 +381,7 @@ test_announce()
+       :>"$server_evts"
+       ip netns exec "$ns2" ./pm_nl_ctl ann\
+          dead:beef:2::2 token "$client6_token" id $client_addr_id dev ns2eth1
+-      print_test "ADD_ADDR6 id:${client_addr_id} dead:beef:2::2 (ns2) => ns1, reuse port"
++      print_test "ADD_ADDR6 id:client dead:beef:2::2 (ns2) => ns1, reuse port"
+       sleep 0.5
+       verify_announce_event "$server_evts" "$ANNOUNCED" "$server6_token" "dead:beef:2::2"\
+                             "$client_addr_id" "$client6_port" "v6"
+@@ -388,7 +391,7 @@ test_announce()
+       client_addr_id=$((client_addr_id+1))
+       ip netns exec "$ns2" ./pm_nl_ctl ann 10.0.2.2 token "$client4_token" id\
+          $client_addr_id dev ns2eth1 port $new4_port
+-      print_test "ADD_ADDR id:${client_addr_id} 10.0.2.2 (ns2) => ns1, new port"
++      print_test "ADD_ADDR id:client+1 10.0.2.2 (ns2) => ns1, new port"
+       sleep 0.5
+       verify_announce_event "$server_evts" "$ANNOUNCED" "$server4_token" "10.0.2.2"\
+                             "$client_addr_id" "$new4_port"
+@@ -399,7 +402,7 @@ test_announce()
+       # ADD_ADDR from the server to client machine reusing the subflow port
+       ip netns exec "$ns1" ./pm_nl_ctl ann 10.0.2.1 token "$server4_token" id\
+          $server_addr_id dev ns1eth2
+-      print_test "ADD_ADDR id:${server_addr_id} 10.0.2.1 (ns1) => ns2, reuse port"
++      print_test "ADD_ADDR id:server 10.0.2.1 (ns1) => ns2, reuse port"
+       sleep 0.5
+       verify_announce_event "$client_evts" "$ANNOUNCED" "$client4_token" "10.0.2.1"\
+                             "$server_addr_id" "$app4_port"
+@@ -408,7 +411,7 @@ test_announce()
+       :>"$client_evts"
+       ip netns exec "$ns1" ./pm_nl_ctl ann dead:beef:2::1 token "$server6_token" id\
+          $server_addr_id dev ns1eth2
+-      print_test "ADD_ADDR6 id:${server_addr_id} dead:beef:2::1 (ns1) => ns2, reuse port"
++      print_test "ADD_ADDR6 id:server dead:beef:2::1 (ns1) => ns2, reuse port"
+       sleep 0.5
+       verify_announce_event "$client_evts" "$ANNOUNCED" "$client6_token" "dead:beef:2::1"\
+                             "$server_addr_id" "$app6_port" "v6"
+@@ -418,7 +421,7 @@ test_announce()
+       server_addr_id=$((server_addr_id+1))
+       ip netns exec "$ns1" ./pm_nl_ctl ann 10.0.2.1 token "$server4_token" id\
+          $server_addr_id dev ns1eth2 port $new4_port
+-      print_test "ADD_ADDR id:${server_addr_id} 10.0.2.1 (ns1) => ns2, new port"
++      print_test "ADD_ADDR id:server+1 10.0.2.1 (ns1) => ns2, new port"
+       sleep 0.5
+       verify_announce_event "$client_evts" "$ANNOUNCED" "$client4_token" "10.0.2.1"\
+                             "$server_addr_id" "$new4_port"
+@@ -452,7 +455,7 @@ test_remove()
+       local invalid_token=$(( client4_token - 1 ))
+       ip netns exec "$ns2" ./pm_nl_ctl rem token $invalid_token id\
+          $client_addr_id > /dev/null 2>&1
+-      print_test "RM_ADDR id:${client_addr_id} ns2 => ns1, invalid token"
++      print_test "RM_ADDR id:client ns2 => ns1, invalid token"
+       local type
+       type=$(mptcp_lib_evts_get_info type "$server_evts")
+       if [ "$type" = "" ]
+@@ -466,7 +469,7 @@ test_remove()
+       local invalid_id=$(( client_addr_id + 1 ))
+       ip netns exec "$ns2" ./pm_nl_ctl rem token "$client4_token" id\
+          $invalid_id > /dev/null 2>&1
+-      print_test "RM_ADDR id:${invalid_id} ns2 => ns1, invalid id"
++      print_test "RM_ADDR id:client+1 ns2 => ns1, invalid id"
+       type=$(mptcp_lib_evts_get_info type "$server_evts")
+       if [ "$type" = "" ]
+       then
+@@ -479,7 +482,7 @@ test_remove()
+       :>"$server_evts"
+       ip netns exec "$ns2" ./pm_nl_ctl rem token "$client4_token" id\
+          $client_addr_id
+-      print_test "RM_ADDR id:${client_addr_id} ns2 => ns1"
++      print_test "RM_ADDR id:client ns2 => ns1"
+       sleep 0.5
+       verify_remove_event "$server_evts" "$REMOVED" "$server4_token" "$client_addr_id"
+@@ -488,7 +491,7 @@ test_remove()
+       client_addr_id=$(( client_addr_id - 1 ))
+       ip netns exec "$ns2" ./pm_nl_ctl rem token "$client4_token" id\
+          $client_addr_id
+-      print_test "RM_ADDR id:${client_addr_id} ns2 => ns1"
++      print_test "RM_ADDR id:client-1 ns2 => ns1"
+       sleep 0.5
+       verify_remove_event "$server_evts" "$REMOVED" "$server4_token" "$client_addr_id"
+@@ -496,7 +499,7 @@ test_remove()
+       :>"$server_evts"
+       ip netns exec "$ns2" ./pm_nl_ctl rem token "$client6_token" id\
+          $client_addr_id
+-      print_test "RM_ADDR6 id:${client_addr_id} ns2 => ns1"
++      print_test "RM_ADDR6 id:client-1 ns2 => ns1"
+       sleep 0.5
+       verify_remove_event "$server_evts" "$REMOVED" "$server6_token" "$client_addr_id"
+@@ -506,7 +509,7 @@ test_remove()
+       # RM_ADDR from the server to client machine
+       ip netns exec "$ns1" ./pm_nl_ctl rem token "$server4_token" id\
+          $server_addr_id
+-      print_test "RM_ADDR id:${server_addr_id} ns1 => ns2"
++      print_test "RM_ADDR id:server ns1 => ns2"
+       sleep 0.5
+       verify_remove_event "$client_evts" "$REMOVED" "$client4_token" "$server_addr_id"
+@@ -515,7 +518,7 @@ test_remove()
+       server_addr_id=$(( server_addr_id - 1 ))
+       ip netns exec "$ns1" ./pm_nl_ctl rem token "$server4_token" id\
+          $server_addr_id
+-      print_test "RM_ADDR id:${server_addr_id} ns1 => ns2"
++      print_test "RM_ADDR id:server-1 ns1 => ns2"
+       sleep 0.5
+       verify_remove_event "$client_evts" "$REMOVED" "$client4_token" "$server_addr_id"
+@@ -523,7 +526,7 @@ test_remove()
+       :>"$client_evts"
+       ip netns exec "$ns1" ./pm_nl_ctl rem token "$server6_token" id\
+          $server_addr_id
+-      print_test "RM_ADDR6 id:${server_addr_id} ns1 => ns2"
++      print_test "RM_ADDR6 id:server-1 ns1 => ns2"
+       sleep 0.5
+       verify_remove_event "$client_evts" "$REMOVED" "$client6_token" "$server_addr_id"
+ }
+@@ -551,8 +554,14 @@ verify_subflow_events()
+       local locid
+       local remid
+       local info
++      local e_dport_txt
+-      info="${e_saddr} (${e_from}) => ${e_daddr}:${e_dport} (${e_to})"
++      # only display the fixed ports
++      if [ "${e_dport}" -ge "${app4_port}" ] && [ "${e_dport}" -le "${app6_port}" ]; then
++              e_dport_txt=":${e_dport}"
++      fi
++
++      info="${e_saddr} (${e_from}) => ${e_daddr}${e_dport_txt} (${e_to})"
+       if [ "$e_type" = "$SUB_ESTABLISHED" ]
+       then
+@@ -838,7 +847,7 @@ test_subflows_v4_v6_mix()
+       :>"$client_evts"
+       ip netns exec "$ns1" ./pm_nl_ctl ann 10.0.2.1 token "$server6_token" id\
+          $server_addr_id dev ns1eth2
+-      print_test "ADD_ADDR4 id:${server_addr_id} 10.0.2.1 (ns1) => ns2, reuse port"
++      print_test "ADD_ADDR4 id:server 10.0.2.1 (ns1) => ns2, reuse port"
+       sleep 0.5
+       verify_announce_event "$client_evts" "$ANNOUNCED" "$client6_token" "10.0.2.1"\
+                             "$server_addr_id" "$app6_port"
+@@ -948,7 +957,7 @@ test_listener()
+       local listener_pid=$!
+       sleep 0.5
+-      print_test "CREATE_LISTENER 10.0.2.2:$client4_port"
++      print_test "CREATE_LISTENER 10.0.2.2 (client port)"
+       verify_listener_events $client_evts $LISTENER_CREATED $AF_INET 10.0.2.2 $client4_port
+       # ADD_ADDR from client to server machine reusing the subflow port
+@@ -965,13 +974,14 @@ test_listener()
+       mptcp_lib_kill_wait $listener_pid
+       sleep 0.5
+-      print_test "CLOSE_LISTENER 10.0.2.2:$client4_port"
++      print_test "CLOSE_LISTENER 10.0.2.2 (client port)"
+       verify_listener_events $client_evts $LISTENER_CLOSED $AF_INET 10.0.2.2 $client4_port
+ }
+ print_title "Make connections"
+ make_connection
+ make_connection "v6"
++print_title "Will be using address IDs ${client_addr_id} (client) and ${server_addr_id} (server)"
+ test_announce
+ test_remove
+-- 
+2.43.0
+
index c86c181028b492f561441044e143d6ce7f0d1dbf..6d2bf29293fbaa8e0e2cfb8c9458ac340757d85a 100644 (file)
@@ -9,3 +9,6 @@ pinctrl-rockchip-fix-pinmux-bits-for-rk3328-gpio2-b-.patch
 pinctrl-rockchip-fix-pinmux-bits-for-rk3328-gpio3-b-.patch
 pinctrl-rockchip-use-dedicated-pinctrl-type-for-rk33.patch
 pinctrl-rockchip-fix-pinmux-reset-in-rockchip_pmx_se.patch
+mips-pci-lantiq-restore-reset-gpio-polarity.patch
+selftests-mptcp-print_test-out-of-verify_listener_ev.patch
+selftests-mptcp-userspace_pm-fixed-subtest-names.patch