From nobody Mon May 25 03:41:44 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B4DA6480DC5; Tue, 5 May 2026 15:01:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777993289; cv=none; b=FnaATb/sdTW+r2+fTsh+dlrHTqM8xTQlbgSkwFklaT2eJjaG5RGljobpj4Ex8Sb7tCfF1Ry4gdlUMRPF3kp+vUVDq1PsTXHKqVdFx7nGF0MlgcLMd5hHG/U1UKItFceaQr2YO3/rfcOiFuicO/laBWB+nOz9aaDSfPYS5CL0/cQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777993289; c=relaxed/simple; bh=EkSruGFMHGWcQLZNz6XQq0dIVKxBOld8BsSrTpSJ7VA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Ykm/8wEF90xmc+8pO6OloJFI2FZMjrgAyDa24r3b1cMS7YSCM98C82Y2DxCdQCzcq1olSG+mNZFx8GhSeCEqKUy8ZC0/mLsPTFL46KuqcjyHXNEC9gETHLcAJeC2oAW+pa6twSDFhJHPDXVdEiLrrG3kz5q8VyMqsXhZzWrWIns= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NP3OlXAx; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="NP3OlXAx" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5EF9BC2BCB4; Tue, 5 May 2026 15:01:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777993289; bh=EkSruGFMHGWcQLZNz6XQq0dIVKxBOld8BsSrTpSJ7VA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=NP3OlXAxFSgNVMW/v3wUxdDhgCJLJZbSWceJJtoXX4m2H2RswmsRI16zJ3SkMcdan +RwQ2g3VHJ/P8GhvLXuB5CFNWYNHg5xNvQLt7GNIkRNlfN9M/CrQSaIm08wyw2lrlZ bnetWHpUtV8zLdvt+riUligAx2Wi2Cgm8+JET0/BSuwz97PPQfNrSRQEper2A9o2qM 4x/dBhadg+dJDfXH9Bdiipkhv6d8Auk8jzsmHq7J3l7jUrMIGMBxiHWH3MaiCOHuax Ihft73+xqUicgL1NRimIiiEF0RZYQyHUDbPzJKmnGIaaekRF6RPj7KFGVBH4W/LwH/ lUq9T7xz/1Q1Q== From: "Matthieu Baerts (NGI0)" Date: Tue, 05 May 2026 17:00:49 +0200 Subject: [PATCH net 01/11] mptcp: pm: kernel: correctly retransmit ADD_ADDR ID 0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-1-fca8091060a4@kernel.org> References: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-0-fca8091060a4@kernel.org> In-Reply-To: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-0-fca8091060a4@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Christoph Paasch Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , stable@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2153; i=matttbe@kernel.org; h=from:subject:message-id; bh=EkSruGFMHGWcQLZNz6XQq0dIVKxBOld8BsSrTpSJ7VA=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDJ/sVlr3t26vKDt85+CS5+4ft+zXXRF8rPPBwv/7vfpE jFazSwhHaUsDGJcDLJiiizSbZH5M59X8ZZ4+VnAzGFlAhnCwMUpABPZdo/hf5TCmdnbVRVcKtY/ vHXKY09AjuptoYvCT78pl15aFcn1W5uRYbXavk3HGdNO1WT7Hnd0+srvcrRlSkqUh+lE+UYlHvc +XgA= X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 When adding the ADD_ADDR to the list, the address including the IP, port and ID are copied. On the other hand, when the endpoint corresponds to the one from the initial subflow, the ID is set to 0, as specified by the MPTCP protocol. The issue is that the ID was reset after having copied the ID in the ADD_ADDR entry. So the retransmission was done, but using a different ID than the initial one. Fixes: 8b8ed1b429f8 ("mptcp: pm: reuse ID 0 after delete and re-add") Cc: stable@vger.kernel.org Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/pm_kernel.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/net/mptcp/pm_kernel.c b/net/mptcp/pm_kernel.c index c9f1e5af3cd3..fc818b63752e 100644 --- a/net/mptcp/pm_kernel.c +++ b/net/mptcp/pm_kernel.c @@ -347,6 +347,8 @@ static void mptcp_pm_create_subflow_or_signal_addr(stru= ct mptcp_sock *msk) =20 /* check first for announce */ if (msk->pm.add_addr_signaled < endp_signal_max) { + u8 endp_id; + /* due to racing events on both ends we can reach here while * previous add address is still running: if we invoke now * mptcp_pm_announce_addr(), that will fail and the @@ -360,19 +362,20 @@ static void mptcp_pm_create_subflow_or_signal_addr(st= ruct mptcp_sock *msk) if (!select_signal_address(pernet, msk, &local)) goto subflow; =20 + /* Special case for ID0: set the correct ID */ + endp_id =3D local.addr.id; + if (endp_id =3D=3D msk->mpc_endpoint_id) + local.addr.id =3D 0; + /* If the alloc fails, we are on memory pressure, not worth * continuing, and trying to create subflows. */ if (!mptcp_pm_alloc_anno_list(msk, &local.addr)) return; =20 - __clear_bit(local.addr.id, msk->pm.id_avail_bitmap); + __clear_bit(endp_id, msk->pm.id_avail_bitmap); msk->pm.add_addr_signaled++; =20 - /* Special case for ID0: set the correct ID */ - if (local.addr.id =3D=3D msk->mpc_endpoint_id) - local.addr.id =3D 0; - mptcp_pm_announce_addr(msk, &local.addr, false); mptcp_pm_addr_send_ack(msk); =20 --=20 2.53.0 From nobody Mon May 25 03:41:44 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1BCED480974; Tue, 5 May 2026 15:01:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777993294; cv=none; b=SVm6lKcWMqvyGL9IQLDFSGJC4LG8JBTfZVpN21SpkiF7R7mdBhLMogHLL0Vp4zPuGaKkJQh21Xuigu4pD7xjp7xGFcm5+EQSMFkhgZm9gVJwE+Kx4FcrBfx3SHdiQsosppFAd4L15LVo7IM2q2BUSghK409vHqNqXUka/LsryLw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777993294; c=relaxed/simple; bh=Bcs35Z3gYm7xwLE3VZxEnozcC4S4AZ2W+dU9mPhm5wk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=s6nUq7FtfSeZ13oTQJ1OHCz1MOlXS7QCrt6fcRmHIM0ee86mvIvFeTLcj9Na1iCXx9P1MH0MNS7OYD2OzjOpE06bfpXUig7M45iziI/LaAR4pYAAzYC+CmF9iZ0n+PnGYXwCa8SOudk+KXV7XwuhOXpVTKx3jzjkKWj5kAmdsS0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hsAIMpoE; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hsAIMpoE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BA611C2BCF4; Tue, 5 May 2026 15:01:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777993291; bh=Bcs35Z3gYm7xwLE3VZxEnozcC4S4AZ2W+dU9mPhm5wk=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=hsAIMpoEcEoUgzGn7ZkTxBziZFn8GBov81vOhBBBzcmOzKmUW50bMSwdA2wDLlCiu H8AykWl35tkizlsNEObXPlLHgey9Us0s6mwGNQ0IA1ycxBui/caqBcBPaPctafd8tR FoOmWvEHjrM436tziE+AOv3SuCUHzZSYbQPZzbVBQWeBesfCkk85ae1eY59gX18N1G 9vudKR6vzQqSQ2vTL9FRX70hmKCnJd5ptrnKzK42TdcDqQkTC6BmoW+cmthl9lULaJ K0OMXOft7fOFMdZltiA9UkLhfdW7w7GAMMh6Il3Iyik3OEa/+1ENjwKvJZpjdVjrNc JPSHwjycEOo6g== From: "Matthieu Baerts (NGI0)" Date: Tue, 05 May 2026 17:00:50 +0200 Subject: [PATCH net 02/11] mptcp: pm: ADD_ADDR rtx: allow ID 0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-2-fca8091060a4@kernel.org> References: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-0-fca8091060a4@kernel.org> In-Reply-To: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-0-fca8091060a4@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Christoph Paasch Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , stable@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=992; i=matttbe@kernel.org; h=from:subject:message-id; bh=Bcs35Z3gYm7xwLE3VZxEnozcC4S4AZ2W+dU9mPhm5wk=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDJ/sdlEfYzJmlnaz+dfoRGzXfCSRuWNWtfNC4u1vee8X Xwl/vHTjlIWBjEuBlkxRRbptsj8mc+reEu8/Cxg5rAygQxh4OIUgIlULWFkuOyn+PzvVP+wJfp9 K/S+TF4tX3146drfjF9Yw7Svx+c0PGRkaJRzyPpvF9jJHCpufWcPO1/wrdMHZs6oe/1o27GdTwT /MgMA X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 ADD_ADDR can be sent for the ID 0, which corresponds to the local address and port linked to the initial subflow. Indeed, this address could be removed, and re-added later on, e.g. what is done in the "delete re-add signal" MPTCP Join selftests. So no reason to ignore it. Fixes: 00cfd77b9063 ("mptcp: retransmit ADD_ADDR when timeout") Cc: stable@vger.kernel.org Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/pm.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index 57a456690406..5056eb8db24e 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -337,9 +337,6 @@ static void mptcp_pm_add_timer(struct timer_list *timer) if (inet_sk_state_load(sk) =3D=3D TCP_CLOSE) return; =20 - if (!entry->addr.id) - return; - if (mptcp_pm_should_add_signal_addr(msk)) { sk_reset_timer(sk, timer, jiffies + TCP_RTO_MAX / 8); goto out; --=20 2.53.0 From nobody Mon May 25 03:41:44 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 420B1480DCF; Tue, 5 May 2026 15:01:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777993294; cv=none; b=fvfkar15n/dtzeG3RSZ9Hj2XRxQfv+KByoX19OvPM+VVrxhAIVn2ifvGar7SLpc2EB9oda0CDh1NFIo3D5s0YkkCpNnO/wd7LdX4HXjCQhgdOWCfhZxMAE781FNmhdviXbBhzyhYxHVSiLpYshkuF0YZWYsA34ZFmmrchLFvb+c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777993294; c=relaxed/simple; bh=O+sF1GAywSQrGhzPouN65AXm4Ji3EuL/SL0gRQhTA98=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=R7dmdnus2Hp0NApwCuzUzAqn5XTkl93bCV3us7+T3gWkhOeVWg/bVS90kUQCGqqJmFHXSN4Jjwa/kNwkBa/s+XtoMR89DyHhPSCwrp6tXnl2TCXij48cBAlyQItsQYNRLIcPmSMsLCWPZxHcH/iGhpN2/+JtuW5qLa2pNockQpc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bPDw7r7T; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="bPDw7r7T" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 206D7C2BCB4; Tue, 5 May 2026 15:01:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777993294; bh=O+sF1GAywSQrGhzPouN65AXm4Ji3EuL/SL0gRQhTA98=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=bPDw7r7TiVLcuOMIhEnhM5wzrqldCztQ+uEjVpv34ydujiF/OWged8icNXp3Akk9Z 9SPWaK6BIOatk2l4M6lXZ6dpR31dkSQjWoZZbUoisUjLcILaECSr98Fgsg9DS11g+2 h9CpK5IKQi3w3gNUiVBxuv/QtaWztsX54V6Wwi8bauSjFyrHwKIV5C8zjhSLuglpXR kX57XL5bTQ6HKgI/7LWGfNAuRJBXUVzSR1dNXGfozBwjuAhm7xisu4jJjo51xrQJXq S8HaoID1UMJOfPr6SEGzMS/eSaJJYWEoWT01iI/0cpSbrERCmn8PNn5QYn6c4vIZrZ tms0uqfOJlV0g== From: "Matthieu Baerts (NGI0)" Date: Tue, 05 May 2026 17:00:51 +0200 Subject: [PATCH net 03/11] mptcp: pm: ADD_ADDR rtx: fix potential data-race Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-3-fca8091060a4@kernel.org> References: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-0-fca8091060a4@kernel.org> In-Reply-To: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-0-fca8091060a4@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Christoph Paasch Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , stable@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1279; i=matttbe@kernel.org; h=from:subject:message-id; bh=O+sF1GAywSQrGhzPouN65AXm4Ji3EuL/SL0gRQhTA98=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDJ/sdlqPNZ++flpSWuz2pbOvZ+nTnVJ2ralSfv16pnvl j2bzuT0r6OUhUGMi0FWTJFFui0yf+bzKt4SLz8LmDmsTCBDGLg4BWAij5QZGY4tlL6kw7nnwxNr qcI7fzTbon7W7P2qK52+ne/pu4sFz5YxMhw4ZpVfYF5l6TbHsFDFfsrFE4FWXN1ztl9Qypz/MX/ REU4A X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 This mptcp_pm_add_timer() helper is executed as a timer callback in softirq context. To avoid any data races, the socket lock needs to be held with bh_lock_sock(). If the socket is in use, retry again soon after, similar to what is done with the keepalive timer. Fixes: 00cfd77b9063 ("mptcp: retransmit ADD_ADDR when timeout") Cc: stable@vger.kernel.org Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/pm.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index 5056eb8db24e..3912128d9b86 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -337,6 +337,13 @@ static void mptcp_pm_add_timer(struct timer_list *time= r) if (inet_sk_state_load(sk) =3D=3D TCP_CLOSE) return; =20 + bh_lock_sock(sk); + if (sock_owned_by_user(sk)) { + /* Try again later. */ + sk_reset_timer(sk, timer, jiffies + HZ / 20); + goto out; + } + if (mptcp_pm_should_add_signal_addr(msk)) { sk_reset_timer(sk, timer, jiffies + TCP_RTO_MAX / 8); goto out; @@ -365,6 +372,7 @@ static void mptcp_pm_add_timer(struct timer_list *timer) mptcp_pm_subflow_established(msk); =20 out: + bh_unlock_sock(sk); __sock_put(sk); } =20 --=20 2.53.0 From nobody Mon May 25 03:41:44 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CB79248165B; Tue, 5 May 2026 15:01:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777993296; cv=none; b=Tfj2x1HoqLDtn6sFnSlz2SQQ2zMtK7Opk9etpELoRlyhQVnq95sxwOTELe53s52W1wr0Ic2DNNiTLwlCOyqfg4mWX0xNkMKQ9sQ4ksepXST5xCjF/YkvwLApOJHwAqdh46I5GT9uxHFf72MPi+cUVDmnI+FGppmG3FPUSL3W69g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777993296; c=relaxed/simple; bh=9lEqNr5o96brxW53kM1HDMOvIp5F6keFzu1PTTOw344=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=hmFwiWpXIuKHt7/P9fLILUY9Pasut+yvACk2FQ41qpbDjm2mkJxeLjcPwQgHtZlC+vVbxR/0io7scTQAajXSGn8vbz0EPFHZWYH2MtQRSXjfLZKYTz3P5u91RuMQEctHJDsRCNmxiGaTCO1NDO7DqSlFj8kE7vcABlUsS0tJf90= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XP/KAfUN; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="XP/KAfUN" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7FF61C2BCB4; Tue, 5 May 2026 15:01:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777993296; bh=9lEqNr5o96brxW53kM1HDMOvIp5F6keFzu1PTTOw344=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=XP/KAfUN1RLfOzWfb5obwrakZVSKFNQDwj+eEzQrrYCDv5xyKebWy//b7YlQR8pB1 qw45xMq1XC+6sIRfLKZzr+abklWS1XTXkay0ZkVBx0yHcWURxxi/zIUPf8kgd+G+4f xe+vEdmh8hJy74t7M63BiS82mMFQ/O/HLwM6E+ugqNBlouFrfSoeMHyeLD0eWCDpxM qbTdu3g24JEVpXfJ1yZzKBX4/l1U2xUXuA1IMan77AItcSmQjvBR91vdMQvQZbBiOI 2UoJc5qXC8gUU2zo7TQaQ79TPogwdW92R2ZweXiIhAbaLnhOlt+9khakXj+k8furpM RB8YwKIZkJWVw== From: "Matthieu Baerts (NGI0)" Date: Tue, 05 May 2026 17:00:52 +0200 Subject: [PATCH net 04/11] mptcp: pm: ADD_ADDR rtx: always decrease sk refcount Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-4-fca8091060a4@kernel.org> References: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-0-fca8091060a4@kernel.org> In-Reply-To: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-0-fca8091060a4@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Christoph Paasch Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , stable@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1408; i=matttbe@kernel.org; h=from:subject:message-id; bh=9lEqNr5o96brxW53kM1HDMOvIp5F6keFzu1PTTOw344=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDJ/sdly9yruWTVjm25NoXzgV4vJCfs/pj6NXDfT4K/pv 6VtJeeEOkpZGMS4GGTFFFmk2yLzZz6v4i3x8rOAmcPKBDKEgYtTACbysYyRYaNN3ZdbMZ/XGjzd xtCy6If25L6ej82pzHe4727UNrPvOMDwz0bt1Nm4x7W2AmdPWZ2Y9+hVy9nat4W1JUbXX1R+8d+ iwQQA X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 When an ADD_ADDR is retransmitted, the sk is held in sk_reset_timer(). It should then be released in all cases at the end. Some (unlikely) checks were returning directly instead of calling sock_put() to decrease the refcount. Jump to a new 'exit' label to call __sock_put() (which will become sock_put() in the next commit) to fix this potential leak. While at it, drop the '!msk' check which cannot happen because it is never reset, and explicitly mark the remaining one as "unlikely". Fixes: 00cfd77b9063 ("mptcp: retransmit ADD_ADDR when timeout") Cc: stable@vger.kernel.org Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/pm.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index 3912128d9b86..2a01bf1b5bfd 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -331,11 +331,8 @@ static void mptcp_pm_add_timer(struct timer_list *time= r) =20 pr_debug("msk=3D%p\n", msk); =20 - if (!msk) - return; - - if (inet_sk_state_load(sk) =3D=3D TCP_CLOSE) - return; + if (unlikely(inet_sk_state_load(sk) =3D=3D TCP_CLOSE)) + goto exit; =20 bh_lock_sock(sk); if (sock_owned_by_user(sk)) { @@ -373,6 +370,7 @@ static void mptcp_pm_add_timer(struct timer_list *timer) =20 out: bh_unlock_sock(sk); +exit: __sock_put(sk); } =20 --=20 2.53.0 From nobody Mon May 25 03:41:44 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3E2DF39B952; Tue, 5 May 2026 15:01:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777993299; cv=none; b=ZWmKXC+0e4BxbctOR5iQrz0FC0i3mcH4twAk38NAaOChJhw4fXM+ymtpu1s3o5+xxGlIfQJ57oYdFCGTEuyFeX0tTU2P9oAdEZbbTBnNji+sYnyuuuG+r9B64r/EaJbgJuWwvwWVZehSAuNBM/90QiloKaW9+Tl63A/KDOIZ4qQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777993299; c=relaxed/simple; bh=O2/nglzrTC4QlrYsuJQMIVGAnjK+kDOV3GAZgDGe7ik=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=KG1UKxuYvipmBxpENGhQvU9bFsZ/TSQI976qxQzi0uA+MRfE5qjBMtc5JaWJVFFipstgetOIHXA/DGPJazHbX+2oZJc3ycjK0NTpXXiwmsLBf15U3QgY7buI/cn47MQsWzSUNSVqkNabkL3+xhK87QCxWfDyTJCZgoNI230ij44= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TN9f7RGM; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="TN9f7RGM" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D7DA5C2BCF4; Tue, 5 May 2026 15:01:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777993298; bh=O2/nglzrTC4QlrYsuJQMIVGAnjK+kDOV3GAZgDGe7ik=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=TN9f7RGM+8GkHyVGzYX5Vjv5N2DsyfHpjyZpQ90mrB/LEEhkqe0jLGiTr9JGtUlTX BMaSMJ6qwjpCpsmB2G/UFuue5COUiTfBnX/FQvPHBMD1YLEHSfuampaMT9vooG1RcY TS6D+hMT3pbCR7JHupX3q+AIMiaffYWuPzlGcCnOnv5KQ1yQkkC2nmRKTI2KZCLO5d B0I9sa2b522NrfpMAnxY6KTy+MjmuSk5j0lCtmDFIM49BEigu0B52MwYOkMl/0jMpF 0vuDf74GAydlaVqim3rqDvv+UC+i6F5Vlx1TlV+GYZSjmY1fF0r3E2zcBCV8Y7rRya S4z+Mch2lEyNw== From: "Matthieu Baerts (NGI0)" Date: Tue, 05 May 2026 17:00:53 +0200 Subject: [PATCH net 05/11] mptcp: pm: ADD_ADDR rtx: free sk if last Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-5-fca8091060a4@kernel.org> References: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-0-fca8091060a4@kernel.org> In-Reply-To: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-0-fca8091060a4@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Christoph Paasch Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , stable@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3439; i=matttbe@kernel.org; h=from:subject:message-id; bh=O2/nglzrTC4QlrYsuJQMIVGAnjK+kDOV3GAZgDGe7ik=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDJ/sdnJfrCzrHDjPu40NfR+o1t36dsH13hOBEe8j7eP3 b8+RsKpo5SFQYyLQVZMkUW6LTJ/5vMq3hIvPwuYOaxMIEMYuDgFYCLylYwMlwy8hDauWbZk7saK B/WZP9mt1wSt3nVvzS73wFVfPc7MiWP4p7T+9UXnVU/iNvutaFc9tIJhoWjfgnOFs7uzj1RdX/B clAkA X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 When an ADD_ADDR is retransmitted, the sk is held in sk_reset_timer(), and released at the end. If at that moment, it was the last reference being held, the sk would not be freed. sock_put() should then be called instead of __sock_put(). But that's not enough: if it is the last reference, sock_put() will call sk_free(), which will end up calling sk_stop_timer_sync() on the same timer, and waiting indefinitely to finish. So it is needed to mark that the timer is done at the end of the timer handler when it has not been rescheduled, not to call sk_stop_timer_sync() on "itself". Fixes: 00cfd77b9063 ("mptcp: retransmit ADD_ADDR when timeout") Cc: stable@vger.kernel.org Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/pm.c | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index 2a01bf1b5bfd..8899327e59a1 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -16,6 +16,7 @@ struct mptcp_pm_add_entry { struct list_head list; struct mptcp_addr_info addr; u8 retrans_times; + bool timer_done; struct timer_list add_timer; struct mptcp_sock *sock; struct rcu_head rcu; @@ -327,22 +328,22 @@ static void mptcp_pm_add_timer(struct timer_list *tim= er) add_timer); struct mptcp_sock *msk =3D entry->sock; struct sock *sk =3D (struct sock *)msk; - unsigned int timeout; + unsigned int timeout =3D 0; =20 pr_debug("msk=3D%p\n", msk); =20 - if (unlikely(inet_sk_state_load(sk) =3D=3D TCP_CLOSE)) - goto exit; - bh_lock_sock(sk); + if (unlikely(inet_sk_state_load(sk) =3D=3D TCP_CLOSE)) + goto out; + if (sock_owned_by_user(sk)) { /* Try again later. */ - sk_reset_timer(sk, timer, jiffies + HZ / 20); + timeout =3D HZ / 20; goto out; } =20 if (mptcp_pm_should_add_signal_addr(msk)) { - sk_reset_timer(sk, timer, jiffies + TCP_RTO_MAX / 8); + timeout =3D TCP_RTO_MAX / 8; goto out; } =20 @@ -360,8 +361,9 @@ static void mptcp_pm_add_timer(struct timer_list *timer) } =20 if (entry->retrans_times < ADD_ADDR_RETRANS_MAX) - sk_reset_timer(sk, timer, - jiffies + (timeout << entry->retrans_times)); + timeout <<=3D entry->retrans_times; + else + timeout =3D 0; =20 spin_unlock_bh(&msk->pm.lock); =20 @@ -369,9 +371,13 @@ static void mptcp_pm_add_timer(struct timer_list *time= r) mptcp_pm_subflow_established(msk); =20 out: + if (timeout) + sk_reset_timer(sk, timer, jiffies + timeout); + else + /* if sock_put calls sk_free: avoid waiting for this timer */ + entry->timer_done =3D true; bh_unlock_sock(sk); -exit: - __sock_put(sk); + sock_put(sk); } =20 struct mptcp_pm_add_entry * @@ -434,6 +440,7 @@ bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk, =20 timer_setup(&add_entry->add_timer, mptcp_pm_add_timer, 0); reset_timer: + add_entry->timer_done =3D false; timeout =3D mptcp_adjust_add_addr_timeout(msk); if (timeout) sk_reset_timer(sk, &add_entry->add_timer, jiffies + timeout); @@ -454,7 +461,8 @@ static void mptcp_pm_free_anno_list(struct mptcp_sock *= msk) spin_unlock_bh(&msk->pm.lock); =20 list_for_each_entry_safe(entry, tmp, &free_list, list) { - sk_stop_timer_sync(sk, &entry->add_timer); + if (!entry->timer_done) + sk_stop_timer_sync(sk, &entry->add_timer); kfree_rcu(entry, rcu); } } --=20 2.53.0 From nobody Mon May 25 03:41:44 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 883F1481234; Tue, 5 May 2026 15:01:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777993301; cv=none; b=sKBvT3VNrJLjW81dP2Eng4mQA09mOuaIRZlTF0EhaMD6Fs2EG32yxOqPBlIfo/kiPiWz6P4ZYquBD7rCnHY4b0eH5H03+eWFC4hRw9Y4VZMFLmTT4ovVLsgnxHIPsRYCPJYdr0JmQKEZatPayNamCw1LUx907/lDqTTVTGL6m9U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777993301; c=relaxed/simple; bh=wjGGeQFguxsbTAbjtIBBB0sqCBxsMcqIr9guum5PRN0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=eQQ5ugd1UU9FlQo7y1eqdjTVUOfgdS4yaxRxpUcgHNJOEladrzrY8B4XoVdAK6fT50tAFQFm6+2Zt5Aib+1hHVE/wsInVaYLCWr1bNHgnRb9DRSr0AaYmdSgjhcjH1FT+KJ/HQzZ6gHW50H0L7pszDPxiKGmPubvyO/we6jtH+A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=M/w8B7I8; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="M/w8B7I8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3AD04C2BCC7; Tue, 5 May 2026 15:01:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777993301; bh=wjGGeQFguxsbTAbjtIBBB0sqCBxsMcqIr9guum5PRN0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=M/w8B7I80qJtEcM19+mII2UjiNAEOtSLhKtDpMbJjXKXelzYd0Kpc5zQYwiKtA59h vvcN+miaJib7hXqbthJBH9rQqNRL3XzNxI8SzNgN17OgKbOpUykh8z2PLvnBboC6OO yBC5nwd8WcFTuOdlGsguWrEH/a31M5kG1aFWdD8E0esEKN0ZbbzgJTxwyTa+bOcqq3 4MVXtyFtiKEoS6IrmNSoZPErz+T6haHvy65ewkXmT49iTINHK5U7053SAyStrecFwi 0ZUtydFQsSDUJVbc7VvG3eIeFruAty7NTDGWI0jLVGw84P3PQphpQCn3gx25FwV4W3 lNPlrJs2i9zxA== From: "Matthieu Baerts (NGI0)" Date: Tue, 05 May 2026 17:00:54 +0200 Subject: [PATCH net 06/11] mptcp: pm: ADD_ADDR rtx: resched blocked ADD_ADDR quicker Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-6-fca8091060a4@kernel.org> References: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-0-fca8091060a4@kernel.org> In-Reply-To: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-0-fca8091060a4@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Christoph Paasch Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , stable@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1632; i=matttbe@kernel.org; h=from:subject:message-id; bh=wjGGeQFguxsbTAbjtIBBB0sqCBxsMcqIr9guum5PRN0=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDJ/sdlv/cajUp9wWthd/uGVhRs0Lmx7ur+t4sS99be53 320Emm71FHKwiDGxSArpsgi3RaZP/N5FW+Jl58FzBxWJpAhDFycAjARuUcM/xMVtphZP01Yull5 bSDH3smJl6KTLs56lDbvSFGwhYSQZR8jQ0PH+QPPCm/qmkxI+HQtSuaP7YcCvo/RVW0N5WV/JQ4 fYQIA X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 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 Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/pm.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) 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 *time= r) goto out; } =20 - if (mptcp_pm_should_add_signal_addr(msk)) { - timeout =3D TCP_RTO_MAX / 8; - goto out; - } - timeout =3D mptcp_adjust_add_addr_timeout(msk); - if (!timeout) + if (!timeout || mptcp_pm_should_add_signal_addr(msk)) goto out; =20 spin_lock_bh(&msk->pm.lock); --=20 2.53.0 From nobody Mon May 25 03:41:44 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DFC6A481250; Tue, 5 May 2026 15:01:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777993304; cv=none; b=SoYhsOdZyhpEISDFz27scMLdP/eqX6GaQta9QSzILJlMBLzkPrHazuZNjMaehVSPM7RgDz/Mv4WkjQk3mQBtlfMa+tlOI3AtIlQn5epA6PyqaET4EWvisc7dL9E15MHK3s7LiHSRn76jowz6R2kkmBef06a5IJJ368PQwKWQ5PU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777993304; c=relaxed/simple; bh=5qL8/W6mBGqHCVD2v3ZvGTGMj7PV2tQ5ZdxB1eDeg58=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=fu+5suFgEspSKYSIl4SKFeiAeuTR3rf+tgF9tfqX1xphtbbugItL/YZT/ooWjAaj85jdSl9K5Q2gucOxHFVRv4uisWmzxEUfr9Ck169WmkYJcmqhtn/yFmVtbsmndaSND2UzgOd24YlLZ+TpnJPXjMc5RKzxepVLrIzYWo/7bEg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jnRDf0pa; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jnRDf0pa" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 918DCC2BCF5; Tue, 5 May 2026 15:01:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777993303; bh=5qL8/W6mBGqHCVD2v3ZvGTGMj7PV2tQ5ZdxB1eDeg58=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=jnRDf0pagUsHheJI2iONW2m+z6PIhsUHlrOyQvxPsY+y5yRSd91d2mkRZ509NxyyO UIR3PDjrUj/DKPnOvdHb+SRc/AMhQ11JZLsaTTEjIw5gxAdxpMN62EDhj9Jqd8vfWd auKW3rc77u9VOjb3OHZGQpAwcUh+kAjRWXv496J3p5fIEe+RizIH0PfELlc48cn4kA As+SufZ7IKzCqP4sWiz40JIIg9u/wT5lJmcSCFa+CrPgBk4fi6C3kIk1YEy+0FLhQT eBl2EanRdzS1okbsHRCk1uG4D5wPOO6q8g07WMXlvTw2JBlqg+yFX0ei5RphprojcS BpA5VHthqmtRw== From: "Matthieu Baerts (NGI0)" Date: Tue, 05 May 2026 17:00:55 +0200 Subject: [PATCH net 07/11] mptcp: pm: ADD_ADDR rtx: skip inactive subflows Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-7-fca8091060a4@kernel.org> References: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-0-fca8091060a4@kernel.org> In-Reply-To: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-0-fca8091060a4@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Christoph Paasch Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , stable@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1796; i=matttbe@kernel.org; h=from:subject:message-id; bh=5qL8/W6mBGqHCVD2v3ZvGTGMj7PV2tQ5ZdxB1eDeg58=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDJ/sTloL8/6wjv5uVRSsc2Gq9NWBARurOR24J+dY1K6O fbI9klOHaUsDGJcDLJiiizSbZH5M59X8ZZ4+VnAzGFlAhnCwMUpABNxTWBkWF/25+DV/OJgix+B 3Yfk5IzthPNnHnI70GRzpi47zuKVOiPDZ49wi4tR/57Ma7ubM781Z7l8UuTdjTP6A+vlzq3Xdc3 kBgA= X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 When looking at the maximum RTO amongst the subflows, inactive subflows were taken into account: that includes stale ones, and the initial one if it has been already been closed. Unusable subflows are now simply skipped. Stale ones are used as an alternative: if there are only stale ones, to take their maximum RTO and avoid to eventually fallback to net.mptcp.add_addr_timeout, which is set to 2 minutes by default. Fixes: 30549eebc4d8 ("mptcp: make ADD_ADDR retransmission timeout adaptive") Cc: stable@vger.kernel.org Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/pm.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index 29d1bb6a69cf..8a5dba7fe66e 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -306,18 +306,28 @@ static unsigned int mptcp_adjust_add_addr_timeout(str= uct mptcp_sock *msk) const struct net *net =3D sock_net((struct sock *)msk); unsigned int rto =3D mptcp_get_add_addr_timeout(net); struct mptcp_subflow_context *subflow; - unsigned int max =3D 0; + unsigned int max =3D 0, max_stale =3D 0; =20 mptcp_for_each_subflow(msk, subflow) { struct sock *ssk =3D mptcp_subflow_tcp_sock(subflow); struct inet_connection_sock *icsk =3D inet_csk(ssk); =20 - if (icsk->icsk_rto > max) + if (!__mptcp_subflow_active(subflow)) + continue; + + if (unlikely(subflow->stale)) { + if (icsk->icsk_rto > max_stale) + max_stale =3D icsk->icsk_rto; + } else if (icsk->icsk_rto > max) { max =3D icsk->icsk_rto; + } } =20 - if (max && max < rto) - rto =3D max; + if (max) + return min(max, rto); + + if (max_stale) + return min(max_stale, rto); =20 return rto; } --=20 2.53.0 From nobody Mon May 25 03:41:44 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0C210481FBA; Tue, 5 May 2026 15:01:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777993306; cv=none; b=Jh+oVvQH6e0c7EQNkU1X1fx1wWMAqlVbf+AQkhH+Ob5X44JA5vAKJPl/J3+tWfQmqTEA4JFCbZjsEhlwL3USfph/EsmHJFdjMxavlGs//z3mKXt6dE95Ob6H98Qse6YaIAbcVAMp09HY/c+wnTLIVbQA/JX5RctQwlWjnWQMOTI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777993306; c=relaxed/simple; bh=yvvq3YbFBLFXz+pdvskE+PM+OD43cVKZ0m8B3R0R+3E=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=dgTpmDd7UmeGehRuZS6QIpD8Ixx4o3D7p/t02YH60AJO5SMmB3079UGy9Ibz2/fMooT36ezkDZJ98WcPNILixD9m5E6WsKSfj4YhyQky1VZlr5gG+Zbye4vEZVKeD1m+8J+ElDhHL7ZkVM7l+bahozfEYGmxjS7hCGZ9WEUdK1w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uwtywoXr; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="uwtywoXr" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E8204C2BCB4; Tue, 5 May 2026 15:01:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777993305; bh=yvvq3YbFBLFXz+pdvskE+PM+OD43cVKZ0m8B3R0R+3E=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=uwtywoXrfGZh8VGX/4sufOQrFtWrjjWI97IP6OsTfNJox9RHbI1/avJNdDN/BeiOm BAXWcIZgFtgaOtresj9B1nBxjmmJJlNYhEErSp0J5htCfGNIZen9iF7A000dSTONpR L07QLz8ZdgZPrF9HAemkQf4F2+2ryW6ePRVyFiew7zFgn9PdMhJHIbUcz1DEWZpYhe HxKbpILL98Xbs7hP+BKfCMVn6EeVNvOjgw8K2rCHZj5cZ+0EYqpY9nO59dYTAIA7Yv NsXfvAqiAb5vIuOoDvPEqZe8VZPnKx/78EVuQ486cK0Q3kIObA0RikZPAVxEed+iRn HMdYiXs1dWDzQ== From: "Matthieu Baerts (NGI0)" Date: Tue, 05 May 2026 17:00:56 +0200 Subject: [PATCH net 08/11] mptcp: pm: ADD_ADDR rtx: return early if no retrans Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-8-fca8091060a4@kernel.org> References: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-0-fca8091060a4@kernel.org> In-Reply-To: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-0-fca8091060a4@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Christoph Paasch Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , stable@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=904; i=matttbe@kernel.org; h=from:subject:message-id; bh=yvvq3YbFBLFXz+pdvskE+PM+OD43cVKZ0m8B3R0R+3E=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDJ/sTmKX4oq5db7+iL42tWdPxs/v6oWTC6S1ci+cv73o 71PLwp0dZSyMIhxMciKKbJIt0Xmz3xexVvi5WcBM4eVCWQIAxenAEzkfAPDP71Xk55k5HTa8kb8 vxh0O3/PH/VEuevyvYyvLL/eyQ34oM3wv1x2+9ecyxkZrtKvLlcc5Pt+oaz04Vfb2fMNRT59fxG zihsA X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 No need to iterate over all subflows if there is no retransmission needed. Exit early in this case then. Fixes: 30549eebc4d8 ("mptcp: make ADD_ADDR retransmission timeout adaptive") Cc: stable@vger.kernel.org Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/pm.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index 8a5dba7fe66e..4a6e5ab30d80 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -308,6 +308,9 @@ static unsigned int mptcp_adjust_add_addr_timeout(struc= t mptcp_sock *msk) struct mptcp_subflow_context *subflow; unsigned int max =3D 0, max_stale =3D 0; =20 + if (!rto) + return 0; + mptcp_for_each_subflow(msk, subflow) { struct sock *ssk =3D mptcp_subflow_tcp_sock(subflow); struct inet_connection_sock *icsk =3D inet_csk(ssk); --=20 2.53.0 From nobody Mon May 25 03:41:44 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 64024480DE9; Tue, 5 May 2026 15:01:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777993308; cv=none; b=m/fwWY4FFDaDjt0hazlmDgN8AAqqe+W5r5ANXAqp7T4ykWAwWLSndmxwPFCl2bhE3Rq+Kp9LSIfjWw+jrkUSrUfzl3bfTmDxEJZJbP9URcw7wFoFYCyF9PVfPk+zstxDRmo80yiQ1SSf5WE2rKK4xIlkBJtPd38Fnpxz2FSvyV8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777993308; c=relaxed/simple; bh=px53/60EaBdUVwTZLQJAP1uTkFQrxetJqg6JPD78aBU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=s+b6JFJRAXSNljYpghs2eRrX0MNGE394PUrz++T8eKzP/89rSxpZkch4dViMNLBgg0GQR7tQ0pMTOXGx8S2igRHICH7DABgBCubY6JIfmDhaVJZo0PUvad2akcddkOLt+MIUwwwJTBTqnzl1C9hMYPNqEe5zIOcE3eiEH66uD+c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Rx0o0gwQ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Rx0o0gwQ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4B985C4AF0B; Tue, 5 May 2026 15:01:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777993308; bh=px53/60EaBdUVwTZLQJAP1uTkFQrxetJqg6JPD78aBU=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=Rx0o0gwQWhG/4fQfrr3xTjnf8pUAEvGrIsunHN+Txz0ZsKz2yqDWzU54YQsWyKswN kGTNSEoiVm4E4cSIfbQQc67KiE+FHG17HeS9RaCR8+YsmFQkGgZafMbBC+Fc1aSfzp 5QKz9AgBscRPiQquM8hO3N+R8ordcpKwNCSCLFmNiFH5VXWG1R7pUJ84eGGvOkrEf3 63FB7UZElge0IYYx8U7JnEQ8xGOQ4n2jx8/mLgxrHlM8jJiNwp7dqXBXga+Ktm4kku GjcXsvByybD8kjDHdVlUIpUvF53eTvZ8LGU2fPDvaj39EwUvC9sMiJ+H+W73nppQd+ I+whIBKbFhAqw== From: "Matthieu Baerts (NGI0)" Date: Tue, 05 May 2026 17:00:57 +0200 Subject: [PATCH net 09/11] mptcp: pm: prio: skip closed subflows Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-9-fca8091060a4@kernel.org> References: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-0-fca8091060a4@kernel.org> In-Reply-To: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-0-fca8091060a4@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Christoph Paasch Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , stable@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1155; i=matttbe@kernel.org; h=from:subject:message-id; bh=px53/60EaBdUVwTZLQJAP1uTkFQrxetJqg6JPD78aBU=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDJ/sTmpzs87HKlj/4FjVcu0RTWfwyevUpy//beGibbum wntmZqXOkpZGMS4GGTFFFmk2yLzZz6v4i3x8rOAmcPKBDKEgYtTACbyh4uR4Z9PRtmZXLk5Zofn lK6c+22/h/KcSUU86/c6blvEUBT2qJyR4WYSy6tVcuW/nx9p2/VX3sj1whK7lPW81cfauw1eWTp NYwAA X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 When sending an MP_PRIO, closed subflows need to be skipped. This fixes the case where the initial subflow got closed, re-opened later, then an MP_PRIO is needed for the same local address. Note that explicit MP_PRIO cannot be sent during the 3WHS, so it is fine to use __mptcp_subflow_active(). Fixes: 067065422fcd ("mptcp: add the outgoing MP_PRIO support") Cc: stable@vger.kernel.org Fixes: b29fcfb54cd7 ("mptcp: full disconnect implementation") Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/pm.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index 4a6e5ab30d80..3c152bf66cd5 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -284,6 +284,9 @@ int mptcp_pm_mp_prio_send_ack(struct mptcp_sock *msk, struct sock *ssk =3D mptcp_subflow_tcp_sock(subflow); struct mptcp_addr_info local, remote; =20 + if (!__mptcp_subflow_active(subflow)) + continue; + mptcp_local_address((struct sock_common *)ssk, &local); if (!mptcp_addresses_equal(&local, addr, addr->port)) continue; --=20 2.53.0 From nobody Mon May 25 03:41:44 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 122DA481651; Tue, 5 May 2026 15:01:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777993311; cv=none; b=CG37yzyaeUBgFv7HXlQBsOqj52Adhz+NzE3rRlBe90WEmBhiXGaBY7/eWXcXhL2WoG+EnYOaI2FahGTAvLiF8zx10jc170FU4njPaE5RQUe44gYfbgLRO7GggJYIMqQa5kK3iYVfzJt9tEIf6b6HNwI+Sl1GyCyMn12PlG/7y90= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777993311; c=relaxed/simple; bh=psg6PuHKEap4S5ZDHfd73t2Q2RVWzttWnMP4s8gpVik=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=aLz7la3r6NSD1rYMMxih1Mp8JyYATXERDiraWVFhBs4z7NjQ+ls5JycLL92b6+boRRMkMJtcjYt9cqDiOm6ZU3IzO137kyS9xWuP7EZYV9dP2vNqUVUQ5Q7uLxLiujzEIZMuoRECItIvXNi7kdZVRBUadDAVZ14w+gZThCc6tJk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=pOr0LpLF; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="pOr0LpLF" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A407DC2BCF4; Tue, 5 May 2026 15:01:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777993310; bh=psg6PuHKEap4S5ZDHfd73t2Q2RVWzttWnMP4s8gpVik=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=pOr0LpLFWRp7B7jlv7b1c4BjY7iAqXGau7GSz+dIb1gYQU9dMMGJbAv0efAR8NYP8 OLrDyz1ztDjFXTxYhv1I3FYeAslT8oa3eyAHLoBUS5mZ++JlpDPJCAwyNosbarTUWy FX5W8j/oMBgatPn2uy7PZocb/I8ywGfjWYT7YanThgYU2WY/3eTYdcS6xppA9EqfEw e3YrHNza7OWwDfLh+66EZnKv9nsQBKKBOZb2n0e0t7QM3WY4IWJcIKiK/51R6GXgup VNFmj3S26gfaeb0LxbDpOAUQeU8e6bkqFtyL+MIpkpcRdkHa/FWS7xxSFUUzb+CzJj 6XkF9fHTkg8vg== From: "Matthieu Baerts (NGI0)" Date: Tue, 05 May 2026 17:00:58 +0200 Subject: [PATCH net 10/11] selftests: mptcp: check output: catch cmd errors Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-10-fca8091060a4@kernel.org> References: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-0-fca8091060a4@kernel.org> In-Reply-To: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-0-fca8091060a4@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Christoph Paasch Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , stable@vger.kernel.org, Shuah Khan , linux-kselftest@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3950; i=matttbe@kernel.org; h=from:subject:message-id; bh=psg6PuHKEap4S5ZDHfd73t2Q2RVWzttWnMP4s8gpVik=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDJ/sTm3SQQ7hOc5ORaevPhnt6X8iT+WEfPNbLhv/NjMn RDeYdLZUcrCIMbFICumyCLdFpk/83kVb4mXnwXMHFYmkCEMXJwCMJGNWgy/mO9ELDnm8PhFhMlv w8AAhZfMi7h7xLuuFz8wnm7/N4olnuF/mtnx/ncxpqedOxeJul75I1sju2b6X6cEzZNK9s/W/Gf hAQA= X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 Using '${?}' inside the if-statement to check the returned value from the command that was evaluated as part of the if-statement is not correct: here, '${?}' will be linked to the previous instruction, not the one that is expected here (${cmd}). Instead, simply mark the error, except if an error is expected. If that's the case, 1 can be passed as the 4th argument of this helper. Three checks from pm_netlink.sh expect an error. While at it, improve the error message when the command unexpectedly fails or succeeds. Note that we could expect a specific returned value, but the checks currently expecting an error can be used with 'ip mptcp' or 'pm_nl_ctl', and these two tools don't return the same error code. Fixes: 2d0c1d27ea4e ("selftests: mptcp: add mptcp_lib_check_output helper") Cc: stable@vger.kernel.org Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts (NGI0) --- Cc: Shuah Khan Cc: linux-kselftest@vger.kernel.org --- tools/testing/selftests/net/mptcp/mptcp_lib.sh | 16 ++++++++++------ tools/testing/selftests/net/mptcp/pm_netlink.sh | 10 ++++++---- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing= /selftests/net/mptcp/mptcp_lib.sh index 5fea7e7df628..989a5975dcea 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -474,20 +474,24 @@ mptcp_lib_wait_local_port_listen() { wait_local_port_listen "${@}" "tcp" } =20 +# $1: error file, $2: cmd, $3: expected msg, [$4: expected error] mptcp_lib_check_output() { local err=3D"${1}" local cmd=3D"${2}" local expected=3D"${3}" + local exp_error=3D"${4:-0}" local cmd_ret=3D0 local out =20 - if ! out=3D$(${cmd} 2>"${err}"); then - cmd_ret=3D${?} - fi + out=3D$(${cmd} 2>"${err}") || cmd_ret=3D1 =20 - if [ ${cmd_ret} -ne 0 ]; then - mptcp_lib_pr_fail "command execution '${cmd}' stderr" - cat "${err}" + if [ "${cmd_ret}" !=3D "${exp_error}" ]; then + mptcp_lib_pr_fail "unexpected returned code for '${cmd}', info:" + if [ "${exp_error}" =3D 0 ]; then + cat "${err}" + else + echo "${out}" + fi return 2 elif [ "${out}" =3D "${expected}" ]; then return 0 diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testin= g/selftests/net/mptcp/pm_netlink.sh index 123d9d7a0278..b69f30fcb91e 100755 --- a/tools/testing/selftests/net/mptcp/pm_netlink.sh +++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh @@ -122,10 +122,12 @@ check() local cmd=3D"$1" local expected=3D"$2" local msg=3D"$3" + local exp_error=3D"$4" local rc=3D0 =20 mptcp_lib_print_title "$msg" - mptcp_lib_check_output "${err}" "${cmd}" "${expected}" || rc=3D${?} + mptcp_lib_check_output "${err}" "${cmd}" "${expected}" "${exp_error}" || + rc=3D${?} if [ ${rc} -eq 2 ]; then mptcp_lib_result_fail "${msg} # error ${rc}" ret=3D${KSFT_FAIL} @@ -158,13 +160,13 @@ check "show_endpoints" \ "3,10.0.1.3,signal backup")" "dump addrs" =20 del_endpoint 2 -check "get_endpoint 2" "" "simple del addr" +check "get_endpoint 2" "" "simple del addr" 1 check "show_endpoints" \ "$(format_endpoints "1,10.0.1.1" \ "3,10.0.1.3,signal backup")" "dump addrs after del" =20 add_endpoint 10.0.1.3 2>/dev/null -check "get_endpoint 4" "" "duplicate addr" +check "get_endpoint 4" "" "duplicate addr" 1 =20 add_endpoint 10.0.1.4 flags signal check "get_endpoint 4" "$(format_endpoints "4,10.0.1.4,signal")" "id addr = increment" @@ -173,7 +175,7 @@ for i in $(seq 5 9); do add_endpoint "10.0.1.${i}" flags signal >/dev/null 2>&1 done check "get_endpoint 9" "$(format_endpoints "9,10.0.1.9,signal")" "hard add= r limit" -check "get_endpoint 10" "" "above hard addr limit" +check "get_endpoint 10" "" "above hard addr limit" 1 =20 del_endpoint 9 for i in $(seq 10 255); do --=20 2.53.0 From nobody Mon May 25 03:41:44 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D920148A2D6; Tue, 5 May 2026 15:01:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777993313; cv=none; b=Pkhu+X6ILRxya0RnMjrubQcRs2/lOA6CGleUnqFL/TwAMfz/TO5bp+9rCAlXCfPPatblXQzxq+oNpfYOsc5MMl0i1xxzIeFqElD8zFxMukrBjPke6j3xzUmyOk1NcTRZqnDWmq+jJOfWlNfglYwKK9KVS2Bj1VaHXfo0pM5RE64= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777993313; c=relaxed/simple; bh=vOyvedH0RbGpGyeNOMAiC7KdfFVYLBOIUAbOJ5QaR6U=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QoZMnUzQ2FnFGVw6dV8ErV+q4NulYErcSQMwf0lMEIGvjvXMZr7/0sqYUaYw/YUPe5+dlsXBHlfky3Lus3C94lP7QxdAoJO9bMfTtxRy/LjhkcVAacXm3qcs2IDwqe7OTWuabnkCHkNAom2+FNMGnqEI4PVt3BK8ZL4cAJrSy/A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=aEGGA+t0; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="aEGGA+t0" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4F61BC2BCB4; Tue, 5 May 2026 15:01:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777993313; bh=vOyvedH0RbGpGyeNOMAiC7KdfFVYLBOIUAbOJ5QaR6U=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=aEGGA+t0gsCsnjmrtE3ea+l1dra2zKJqHHhtR0Z01LI6LUjYe8ZDnNV6rwGSpDrEW VkGu9WQ8WVHHrldL5PKiOPxl9UHiNrsiNiqgihOY9kSMpwE05uFAfRRfL13hq7XQbS LZjBdZ+7mhgtUY63JqpQsiJKFxsJ0hYVgAfjBMYd59LjzBZxXcobX6LHckH6GQfdTk J3Uk++duUNFyWHqxnInf+voCjWxYo+RH4uV1OdDdub3S+2VmJfE/1nCYbdweAsK4Hj kJAz2lMWG0kG29nUDAsfo5F8WkIX0SnTByCdp0LIqqDSp/pdFije5v87mSQnsEqf7g 206zO2vCIyItg== From: "Matthieu Baerts (NGI0)" Date: Tue, 05 May 2026 17:00:59 +0200 Subject: [PATCH net 11/11] selftests: mptcp: pm: restrict 'unknown' check to pm_nl_ctl Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-11-fca8091060a4@kernel.org> References: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-0-fca8091060a4@kernel.org> In-Reply-To: <20260505-net-mptcp-pm-fixes-7-1-rc3-v1-0-fca8091060a4@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Christoph Paasch Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , stable@vger.kernel.org, Shuah Khan , linux-kselftest@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1649; i=matttbe@kernel.org; h=from:subject:message-id; bh=vOyvedH0RbGpGyeNOMAiC7KdfFVYLBOIUAbOJ5QaR6U=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDJ/sblMrzvxe9H234Zpc9cs8Z0ZryLu7vnG1Gb6jLVK9 ws4TNobOkpZGMS4GGTFFFmk2yLzZz6v4i3x8rOAmcPKBDKEgYtTACay9i4jw/Pmk8XF88MDvHbf PfZNsPHLFxWpoi3rfv5p2PuZ49CBj7JAFWyfXHaavXnKdeFD6fZdU05LH9tROL1m4t322xb5cbN LGAE= X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 When pm_netlink.sh is executed with '-i', 'ip mptcp' is used instead of 'pm_nl_ctl'. IPRoute2 doesn't support the 'unknown' flag, which has only been added to 'pm_nl_ctl' for this specific check: to ensure that the kernel ignores such unsupported flag. No reason to add this flag to 'ip mptcp'. Then, this check should be skipped when 'ip mptcp' is used. Fixes: 0cef6fcac24d ("selftests: mptcp: ip_mptcp option for more scripts") Cc: stable@vger.kernel.org Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts (NGI0) --- Cc: Shuah Khan Cc: linux-kselftest@vger.kernel.org --- tools/testing/selftests/net/mptcp/pm_netlink.sh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testin= g/selftests/net/mptcp/pm_netlink.sh index b69f30fcb91e..04594dfc22b1 100755 --- a/tools/testing/selftests/net/mptcp/pm_netlink.sh +++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh @@ -194,9 +194,13 @@ check "show_endpoints" \ flush_endpoint check "show_endpoints" "" "flush addrs" =20 -add_endpoint 10.0.1.1 flags unknown -check "show_endpoints" "$(format_endpoints "1,10.0.1.1")" "ignore unknown = flags" -flush_endpoint +# "unknown" flag is only supported by pm_nl_ctl +if ! mptcp_lib_is_ip_mptcp; then + add_endpoint 10.0.1.1 flags unknown + check "show_endpoints" "$(format_endpoints "1,10.0.1.1")" \ + "ignore unknown flags" + flush_endpoint +fi =20 set_limits 9 1 2>/dev/null check "get_limits" "${default_limits}" "rcv addrs above hard limit" --=20 2.53.0