Commit 3cf12492891c for kernel

commit 3cf12492891c4b5ff54dda404a2de4ec54c9e1b5
Author: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Date:   Tue May 5 17:00:54 2026 +0200

    mptcp: pm: ADD_ADDR rtx: resched blocked ADD_ADDR quicker

    When an ADD_ADDR needs to be retransmitted and another one has already
    been prepared -- e.g. multiple ADD_ADDRs have been sent in a row and
    need to be retransmitted later -- this additional retransmission will
    need to wait.

    In this case, the timer was reset to TCP_RTO_MAX / 8, which is ~15
    seconds. This delay is unnecessary long: it should just be rescheduled
    at the next opportunity, e.g. after the retransmission timeout.

    Without this modification, some issues can be seen from time to time in
    the selftests when multiple ADD_ADDRs are sent, and the host takes time
    to process them, e.g. the "signal addresses, ADD_ADDR timeout" MPTCP
    Join selftest, especially with a debug kernel config.

    Note that on older kernels, 'timeout' is not available. It should be
    enough to replace it by one second (HZ).

    Fixes: 00cfd77b9063 ("mptcp: retransmit ADD_ADDR when timeout")
    Cc: stable@vger.kernel.org
    Reviewed-by: Mat Martineau <martineau@kernel.org>
    Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
    Link: https://patch.msgid.link/20260505-net-mptcp-pm-fixes-7-1-rc3-v1-6-fca8091060a4@kernel.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>

diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c
index 8899327e59a1..29d1bb6a69cf 100644
--- a/net/mptcp/pm.c
+++ b/net/mptcp/pm.c
@@ -342,13 +342,8 @@ static void mptcp_pm_add_timer(struct timer_list *timer)
 		goto out;
 	}

-	if (mptcp_pm_should_add_signal_addr(msk)) {
-		timeout = TCP_RTO_MAX / 8;
-		goto out;
-	}
-
 	timeout = mptcp_adjust_add_addr_timeout(msk);
-	if (!timeout)
+	if (!timeout || mptcp_pm_should_add_signal_addr(msk))
 		goto out;

 	spin_lock_bh(&msk->pm.lock);