Skip to content

Commit 7c9e40c

Browse files
matttbegregkh
authored andcommitted
mptcp: pm: ADD_ADDR rtx: resched blocked ADD_ADDR quicker
commit 3cf1249 upstream. 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: 00cfd77 ("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> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 8143a22 commit 7c9e40c

1 file changed

Lines changed: 1 addition & 6 deletions

File tree

net/mptcp/pm.c

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -355,13 +355,8 @@ static void mptcp_pm_add_timer(struct timer_list *timer)
355355
goto out;
356356
}
357357

358-
if (mptcp_pm_should_add_signal_addr(msk)) {
359-
timeout = TCP_RTO_MAX / 8;
360-
goto out;
361-
}
362-
363358
timeout = mptcp_adjust_add_addr_timeout(msk);
364-
if (!timeout)
359+
if (!timeout || mptcp_pm_should_add_signal_addr(msk))
365360
goto out;
366361

367362
spin_lock_bh(&msk->pm.lock);

0 commit comments

Comments
 (0)