From: Greg Kroah-Hartman Date: Mon, 4 Mar 2024 08:11:22 +0000 (+0100) Subject: 5.4-stable patches X-Git-Tag: v4.19.309~65 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1740676c69e6b7ffd9c46be261ffd0ce7b18a00f;p=thirdparty%2Fkernel%2Fstable-queue.git 5.4-stable patches added patches: mptcp-continue-marking-the-first-subflow-as-unconnected.patch --- diff --git a/queue-5.4/mptcp-continue-marking-the-first-subflow-as-unconnected.patch b/queue-5.4/mptcp-continue-marking-the-first-subflow-as-unconnected.patch new file mode 100644 index 00000000000..510ec03c139 --- /dev/null +++ b/queue-5.4/mptcp-continue-marking-the-first-subflow-as-unconnected.patch @@ -0,0 +1,47 @@ +From matttbe@kernel.org Mon Mar 4 09:10:32 2024 +From: "Matthieu Baerts (NGI0)" +Date: Wed, 28 Feb 2024 18:21:21 +0100 +Subject: mptcp: continue marking the first subflow as UNCONNECTED +To: stable@vger.kernel.org, gregkh@linuxfoundation.org, sashal@kernel.org +Cc: MPTCP Upstream , "Matthieu Baerts (NGI0)" +Message-ID: <20240228172121.243458-2-matttbe@kernel.org> + +From: "Matthieu Baerts (NGI0)" + +After the 'Fixes' commit mentioned below, which is a partial backport, +the MPTCP worker was no longer marking the first subflow as "UNCONNECTED" +when the socket was transitioning to TCP_CLOSE state. + +As a result, in v6.1, it was no longer possible to reconnect to the just +disconnected socket. Continue to do that like before, only for the first +subflow. + +A few refactoring have been done around the 'msk->subflow' in later +versions, and it looks like this is not needed to do that there, but +still needed in v6.1. Without that, the 'disconnect' tests from the +mptcp_connect.sh selftest fail: they repeat the transfer 3 times by +reconnecting to the server each time. + +Fixes: 7857e35ef10e ("mptcp: get rid of msk->subflow") +Signed-off-by: Matthieu Baerts (NGI0) +Signed-off-by: Greg Kroah-Hartman +--- + net/mptcp/protocol.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c +index cdabb00648bd2..125825db642cc 100644 +--- a/net/mptcp/protocol.c ++++ b/net/mptcp/protocol.c +@@ -2440,6 +2440,8 @@ static void __mptcp_close_ssk(struct sock *sk, struct sock *ssk, + need_push = (flags & MPTCP_CF_PUSH) && __mptcp_retransmit_pending_data(sk); + if (!dispose_it) { + __mptcp_subflow_disconnect(ssk, subflow, flags); ++ if (msk->subflow && ssk == msk->subflow->sk) ++ msk->subflow->state = SS_UNCONNECTED; + release_sock(ssk); + + goto out; +-- +2.43.0 + diff --git a/queue-5.4/series b/queue-5.4/series index ce40813a810..cc4e45add30 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -21,3 +21,4 @@ dmaengine-fsl-qdma-init-irq-after-reg-initialization.patch mmc-core-fix-emmc-initialization-with-1-bit-bus-connection.patch fs-aio-make-io_cancel-generate-completions-again.patch x86-cpu-intel-detect-tme-keyid-bits-before-setting-mtrr-mask-registers.patch +mptcp-continue-marking-the-first-subflow-as-unconnected.patch