From patchwork Fri Feb 21 15:43:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthieu Baerts X-Patchwork-Id: 13985724 X-Patchwork-Delegate: kuba@kernel.org 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 440A61DBB0C; Fri, 21 Feb 2025 15:44:12 +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=1740152653; cv=none; b=Ejt+LPf9XZTKrmN99maNDhMhwyYXSfAxi8msrfSVeGS5y/BAuxsjuh9Nta1CvJubd/PCIMhwV6yd62FbVsSTVffQTUZ66Azt1yOqbZNpGZE5hfT0Dc5RL5JRmvXJkUTnqGWZVCllk8jPnTViQLMala14IjgGWM8QnjKx4ngoQ6A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740152653; c=relaxed/simple; bh=nTY0AoEf626hk3bDfIL98/ogDyGvSyTa0s0+ixLE/18=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=MStu5U3acllh/mupiH6IhFfL7U/v7QRCln+Clf/Vf84dfB5+X/VLy1Y3DyyXg+MXTFQBfFH3dtXpMbZSO2fD3Lf4LcUyqK7wx/9snHISrp75d/QhNCpfO+hrOWQmCUIaNq6MPJJkq6U/OgWWCt7J8yYAMGxZQKVg0Zg8tcVfsj8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Rp0YZpns; 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="Rp0YZpns" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B4543C4CED6; Fri, 21 Feb 2025 15:44:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740152652; bh=nTY0AoEf626hk3bDfIL98/ogDyGvSyTa0s0+ixLE/18=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=Rp0YZpns+e2+2h0FizGL838vFjMu6TNEfrzID319KAzIKo/Nl2VyL9KWXmjTcRUgh xFRcRdFrLOWoiDUqyR2VKhZ/dTzlxYNuExHrydevbrAw7KDWI0MAn3AXe/yHOd7qxY JM3G2ebYnQcsgakOeG4qSQubgWFn9FtU/wc81GUgD6c5JMzeRLyM3XutLViHsnH1iZ n/puprImXULOPssstd2uD9J0gpCXYlSweWoO0r9Fd85zlLCGimTht66uQOPipgYjmh dtwQDSG4gXEGnIKw12KNy8X8niaIv0zOXLv0zINGUvh07pt0qgXTVdYM5fqbt84g/Q x5LGvd6Zjygdg== From: "Matthieu Baerts (NGI0)" Date: Fri, 21 Feb 2025 16:43:54 +0100 Subject: [PATCH net-next 01/10] mptcp: pm: remove unused ret value to set flags Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-1-2b70ab1cee79@kernel.org> References: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-0-2b70ab1cee79@kernel.org> In-Reply-To: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-0-2b70ab1cee79@kernel.org> To: mptcp@lists.linux.dev, Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1622; i=matttbe@kernel.org; h=from:subject:message-id; bh=nTY0AoEf626hk3bDfIL98/ogDyGvSyTa0s0+ixLE/18=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBnuJ9Hjzhmm/kHONJh/qVhCK3dXllW6av+mFC6J h8I3E3r9++JAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZ7ifRwAKCRD2t4JPQmmg c181D/oD2aaKKTBgk5W4fUnr6hL/m+fqfcmEyStfbs0JJLwbuehvSEF0tWovw8yNOws7lnHd7Ce g2XYLLL279MFYWdvJ9TSIX9l0jIqA5IW9vkQ1Co8ZTDWunXimTmo2aqkmxMgRR7/Qpc/k67B4zh kMvm2oPyzQrwb07C2vbQkOpka2PCSX+ZjAV61M8N8fDUfDab/9QXmDRtj93TSZcTFvEdhCc1n/r UmOcJDZIz4NbBBUpiTZo5yDYdVr9jA2rGOsL5+daHnm/WvIWWCJW0XrRV/dCsmjdjjOP0oAoSX2 wfMsQWTjhgplHUS0YYv2zTBdN+iWl5M0+rZnB9ZrYv1/pt1TGpTYJ18C4zt611StPGohbbVd31E 3MCa+iFQDng7+mWs0VQqk5H23qT1CxIj7W7DEVfVhJY3XQZpz+kzYC4+gOmqbvzIytGmgi4cKrC 7aP6rTo2uqRg9lGcuEO6nsNPARns1uFxDhv4dT90LaFlCnEk4ghGCgCwzFrReczbcYiIVmPuMvJ +i6Q4t1HE8bm3mIkscPF3mhgyLr0/1LyYzUjNoIampKmYJ77A0+yqbhdmYpJ3CW4jPJJK+j8/7v 38z0jTob5Efo3GlxgMLMIV7PIYOKIP/sWRxScFXiV31Xv0PP75sOHOJhLiKZ2iqk+WDfb7d/WMb vrjWhEclKap5jaw== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 X-Patchwork-Delegate: kuba@kernel.org The returned value is not used, it can then be dropped. Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/pm_netlink.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c index 99705a9c2238c6be96e320e8cd1d12bfa0e0e7f0..ff1e5695dc1db5e32d5f45bef7cf22e43aea0ef1 100644 --- a/net/mptcp/pm_netlink.c +++ b/net/mptcp/pm_netlink.c @@ -1922,13 +1922,11 @@ static void mptcp_pm_nl_fullmesh(struct mptcp_sock *msk, spin_unlock_bh(&msk->pm.lock); } -static int mptcp_nl_set_flags(struct net *net, - struct mptcp_addr_info *addr, - u8 bkup, u8 changed) +static void mptcp_nl_set_flags(struct net *net, struct mptcp_addr_info *addr, + u8 bkup, u8 changed) { long s_slot = 0, s_num = 0; struct mptcp_sock *msk; - int ret = -EINVAL; while ((msk = mptcp_token_iter_next(net, &s_slot, &s_num)) != NULL) { struct sock *sk = (struct sock *)msk; @@ -1938,7 +1936,7 @@ static int mptcp_nl_set_flags(struct net *net, lock_sock(sk); if (changed & MPTCP_PM_ADDR_FLAG_BACKUP) - ret = mptcp_pm_nl_mp_prio_send_ack(msk, addr, NULL, bkup); + mptcp_pm_nl_mp_prio_send_ack(msk, addr, NULL, bkup); if (changed & MPTCP_PM_ADDR_FLAG_FULLMESH) mptcp_pm_nl_fullmesh(msk, addr); release_sock(sk); @@ -1948,7 +1946,7 @@ static int mptcp_nl_set_flags(struct net *net, cond_resched(); } - return ret; + return; } int mptcp_pm_nl_set_flags(struct mptcp_pm_addr_entry *local, From patchwork Fri Feb 21 15:43:55 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthieu Baerts X-Patchwork-Id: 13985725 X-Patchwork-Delegate: kuba@kernel.org 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 C29951DBB0C; Fri, 21 Feb 2025 15:44:15 +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=1740152656; cv=none; b=COta3aZtvnLTCliwCIcN10C9dzD81brDpGQUiRR+zNUE2MwvVdAIsn0Uhoq/YJP4YBe52n3uHAiNzQECoqWV7EUIy2zj2qnMqvVhLUFfucdMaUrrTBHFmVpqlq0flJla7uoDyQuuwBFAePA3JuR2af2ZwsJN6WQTeOBQJj7naBU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740152656; c=relaxed/simple; bh=WRIm7ZdYRyuJpKCOtNt2nvnSMXYDI3Z1Wee6MrqYF0k=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=u+7+O2tNQ0lHZFQoQeofwxDcTgl4FklMg3CL2dKTn+Aie3uqI+f7pxxc3ZwolsLkFc5AyjRqI9VUUZ0hTzetDyLAnWOIpZ5D/JhUnPeqrO6ojglOozTkkMGwBLAgpx1YoV7ZAkE1wt8BQTqSpBcD4bcokwdSwPJF0QkDepEJDtw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EEQzXAJH; 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="EEQzXAJH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 36F64C4CEE7; Fri, 21 Feb 2025 15:44:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740152655; bh=WRIm7ZdYRyuJpKCOtNt2nvnSMXYDI3Z1Wee6MrqYF0k=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=EEQzXAJHhk7cCXzRkz50h3t51uubPD/0rDmFBs+HyxKar2+yvP4gVpQ93HFmDbMdw DK3RxImUp9fNIThhDiIvk2VBI2L8gbhB7TIeUmU8nU89wMiFu8zdTrSsE8fcYSRvtJ HUr1/id23DM/9DtOj81nQcN3geuTkYthCDlcvQjZ8loDRTaxaibytXAZdbLG+3oSIK 2MggmmtX0U+Zo3iuZCeZHcUZvgeQk0mUUgPRMqlGzvRE+UN3PIutm0CB3eT6rr/wnP 1UQbayfbwkS1mJ77ebtu2z8LOkZ6pfgAaCB7N9vYSLDtU/q7GcxImFP2XBRHMOQCDO F3nV9p/y4DKgQ== From: "Matthieu Baerts (NGI0)" Date: Fri, 21 Feb 2025 16:43:55 +0100 Subject: [PATCH net-next 02/10] mptcp: pm: change to fullmesh only for 'subflow' Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-2-2b70ab1cee79@kernel.org> References: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-0-2b70ab1cee79@kernel.org> In-Reply-To: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-0-2b70ab1cee79@kernel.org> To: mptcp@lists.linux.dev, Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2965; i=matttbe@kernel.org; h=from:subject:message-id; bh=WRIm7ZdYRyuJpKCOtNt2nvnSMXYDI3Z1Wee6MrqYF0k=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBnuJ9HKwndhRWIuQ5BBb3a+1Q1jKXQrwjNkjXyP l69E4zvevuJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZ7ifRwAKCRD2t4JPQmmg cyvlD/9Y75/3WDF/4Ui9RBepKf2V1AQ9TQZsiGHc6CnG1utnK089iozHuJ+k6WLX+f4F5zznJSH cocEoTZSSlmESf6pf06TIT5DponEPhsFl7ieHQarMWoi+OIyADFPh6c/SjZk0ef65iwyYnBrcga oRPCDqIDUi38semd7yKOvpJI0z54lDrJij5PfZqkG196YVqCN5OatYJFNDamz7Ulmuh60csSPDa x4MlisZyWfiw1fjPpxww7gXkmjx2+2LBBr0pdRSvi2VPlC7pimfBqxYRRiPgVI/nGe1MZOC7Q1u 7gUb53xJL3BbiMl1r1uxL4hCR2G2yhsZMTlcF0UQdmMrPomSMnCTRLvs8emXPvwoyeErUVc183A RVnbv0iiP6vfuTvGTTJ0d7fmZEEb6UodZl+65rZUpGqpjEq7nB5vtzAVQ73wJjz8TrcwHVvnOIP LrUGbkRqNx2wOORml/qzsFtrqtfXxUYHDF3z2uw5/f1B6CvYjiEudJaHfwVG4AEi1/CqGekviSx aUfN2nJRX3krXXKyFJl7X4tUSpiWnZM5apyJiDC2KHwa6ClSAJtHCbm8omQ3MLY1Zr2DIs2A7nV jqw6RiwP7W8+Qn/F7Vp11Ol7oaF1kXmmbh/oU/+AWR6Ow70s7vkNKEZarIjKYsdHF4ltIvOkF4F QVUvNNTIe2EQRVg== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 X-Patchwork-Delegate: kuba@kernel.org If an endpoint doesn't have the 'subflow' flag -- in fact, has no type, so not 'subflow', 'signal', nor 'implicit' -- there are then no subflows created from this local endpoint to at least the initial destination address. In this case, no need to call mptcp_pm_nl_fullmesh() which is there to recreate the subflows to reflect the new value of the fullmesh attribute. Similarly, there is then no need to iterate over all connections to do nothing, if only the 'fullmesh' flag has been changed, and the endpoint doesn't have the 'subflow' one. So stop early when dealing with this specific case. Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/pm_netlink.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c index ff1e5695dc1db5e32d5f45bef7cf22e43aea0ef1..1a0695e087af02347678b9b6914d303554bcf1f3 100644 --- a/net/mptcp/pm_netlink.c +++ b/net/mptcp/pm_netlink.c @@ -1923,11 +1923,16 @@ static void mptcp_pm_nl_fullmesh(struct mptcp_sock *msk, } static void mptcp_nl_set_flags(struct net *net, struct mptcp_addr_info *addr, - u8 bkup, u8 changed) + u8 flags, u8 changed) { + u8 is_subflow = !!(flags & MPTCP_PM_ADDR_FLAG_SUBFLOW); + u8 bkup = !!(flags & MPTCP_PM_ADDR_FLAG_BACKUP); long s_slot = 0, s_num = 0; struct mptcp_sock *msk; + if (changed == MPTCP_PM_ADDR_FLAG_FULLMESH && !is_subflow) + return; + while ((msk = mptcp_token_iter_next(net, &s_slot, &s_num)) != NULL) { struct sock *sk = (struct sock *)msk; @@ -1937,7 +1942,8 @@ static void mptcp_nl_set_flags(struct net *net, struct mptcp_addr_info *addr, lock_sock(sk); if (changed & MPTCP_PM_ADDR_FLAG_BACKUP) mptcp_pm_nl_mp_prio_send_ack(msk, addr, NULL, bkup); - if (changed & MPTCP_PM_ADDR_FLAG_FULLMESH) + /* Subflows will only be recreated if the SUBFLOW flag is set */ + if (is_subflow && (changed & MPTCP_PM_ADDR_FLAG_FULLMESH)) mptcp_pm_nl_fullmesh(msk, addr); release_sock(sk); @@ -1959,7 +1965,6 @@ int mptcp_pm_nl_set_flags(struct mptcp_pm_addr_entry *local, struct mptcp_pm_addr_entry *entry; struct pm_nl_pernet *pernet; u8 lookup_by_id = 0; - u8 bkup = 0; pernet = pm_nl_get_pernet(net); @@ -1972,9 +1977,6 @@ int mptcp_pm_nl_set_flags(struct mptcp_pm_addr_entry *local, } } - if (local->flags & MPTCP_PM_ADDR_FLAG_BACKUP) - bkup = 1; - spin_lock_bh(&pernet->lock); entry = lookup_by_id ? __lookup_addr_by_id(pernet, local->addr.id) : __lookup_addr(pernet, &local->addr); @@ -1996,7 +1998,7 @@ int mptcp_pm_nl_set_flags(struct mptcp_pm_addr_entry *local, *local = *entry; spin_unlock_bh(&pernet->lock); - mptcp_nl_set_flags(net, &local->addr, bkup, changed); + mptcp_nl_set_flags(net, &local->addr, entry->flags, changed); return 0; } From patchwork Fri Feb 21 15:43:56 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthieu Baerts X-Patchwork-Id: 13985726 X-Patchwork-Delegate: kuba@kernel.org 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 476E11F0E53; Fri, 21 Feb 2025 15:44:17 +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=1740152659; cv=none; b=qLtBFskrEldmGVRWegt/lBO4jswJKNvdpaBC+ugXEXygMWGG2Hrz4UMGeLVauCBJx0csj1G+UIZ9MYjnwRRh1dIm+EOn0PTEsW/79jnEKulhUa0KT7rzDxvHp7iXSqqGwZzKsdtQ4/MQOZw4VW+Ou/33+X/qb9qaG+PGXnHdMzw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740152659; c=relaxed/simple; bh=EsW9e6Eg0I9JNIJvlDYXbl4uPz2m/7BkgOhtt9NU6Xc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=dHq3+WcWdcPSr/fbk8KZ04sU2Mck1aaCNUzQNSLdpcctOeBNBpdHWDm84VSjpPCz55XzscNrwCttA9QwB+01+225NEzZz4asAj+V/3NMW2tto4qwnUwIk7momVz5o0eebP2d2pKyPKtyWPLdqBaMO686oo2dfcatmiqQNhLxOoo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=JTwudj4o; 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="JTwudj4o" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AC077C4CEE8; Fri, 21 Feb 2025 15:44:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740152657; bh=EsW9e6Eg0I9JNIJvlDYXbl4uPz2m/7BkgOhtt9NU6Xc=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=JTwudj4oqBNhPBjgdLQYlbbUO9gqGeybyLDPIhxE8RrNDd+tBb9SCo5IruHzee/xQ dfXs9Sc/Lb9xHhzYKQBn/4jT8g80HYgY4QK8OrU/bS66hpDuMy9NXUDaqorCxkQNUN QHve6mJYdAoi7YBws73RP8nRdNiPWR2yY3l5I0rfvqF6lEk9l5JktyJuffw2Ukt/GT 1ONbNSnkCHPji8ow0GYAB/R+7d1IuAqYJjDaNNb6zfkWX5SchnHCXD0zLhMa8vvi8s JaOp9vOi0LIp/1tBlYeCpLjuTcFfeCXzL/httuiu1DEzgtgdb7DSpf2WK9ZcU04sck kxd561POrGijw== From: "Matthieu Baerts (NGI0)" Date: Fri, 21 Feb 2025 16:43:56 +0100 Subject: [PATCH net-next 03/10] mptcp: pm: add a build check for userspace_pm_dump_addr Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-3-2b70ab1cee79@kernel.org> References: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-0-2b70ab1cee79@kernel.org> In-Reply-To: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-0-2b70ab1cee79@kernel.org> To: mptcp@lists.linux.dev, Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , Geliang Tang X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=963; i=matttbe@kernel.org; h=from:subject:message-id; bh=y2doNPKbwP4ZssZleLDCUG9nylLqdDhuJyTbstOxm8c=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBnuJ9HxAq37NZ9S27yQFeiBPr6GAcT1KnqKezbk uB2A5m72g2JAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZ7ifRwAKCRD2t4JPQmmg c7YtD/4k0leI+NarknZoKPH4L0e7WIVhkXgA9vMcQ1VMJVISVQ9gRa3jKfBYZJz2nQ+NNgFF6G1 riLmFZiTeA6FpPSjbtcLe1FKmazyMBeyq1lPZuST+Lghfvt0CL6vzV1bSHyaACm0uXYQzYYgOm+ LWXREfUEyVwNJu51oZwQ5/U3jypIaFYXs0tKUtV6IxFTGZhtYqjxEOvgXMBxvRBsACifYczsaal ua8VcE0Da+U7hDU+jKLsWWfC1f3kQjye+W8OUye6Gg0mtmEWC0GNgy1tdObMAzx5TVI3p4tc2Ok zdQsAb3yxAGqPQtjCzOlvgJeusxBJjEWlBpj5oCUgt9ifkO9yACFXjR8fkzt9VwPWF5pN3aWr/C X5FkcrBleJFZJPN/8pK1hAqGwtbwFOyDg9cvanzMGuZ5R4MvMSkyZOsUjaGLxZNhPWIxl7FBfcr Y1T1DRx9H/dseCYdag6lu3gu64Hhw/lybTqmVsU/d9oOAAYM0iDntWxIeX+XBCsDd93M923BMvH NnaMiFmAMshNwNq/ouGt6ZVJ8TyUaH1/G0kqmtmvYyWBl1gIgMCw71Dg4u1AtJdntRkQO8rIZJ7 NLDHM7ZepS34LMgxk9Ot4tROaB6o7I2rnbFxBpXHp2hWpY9xZKWxzCZK6nSXV0ID5sBzBIr5ok6 +cEFZYIt9dhPrsg== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 X-Patchwork-Delegate: kuba@kernel.org From: Geliang Tang This patch adds a build check for mptcp_userspace_pm_dump_addr() to make sure there is enough space in 'cb->ctx' to store an address id bitmap. Just in case info stored in 'cb->ctx' are increased later. Signed-off-by: Geliang Tang Reviewed-by: Matthieu Baerts (NGI0) Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/pm_userspace.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c index 277cf092a87042a85623470237a8ef24d29e65e6..b69fb5b18130cb3abd08e3ef47004f599895486a 100644 --- a/net/mptcp/pm_userspace.c +++ b/net/mptcp/pm_userspace.c @@ -643,6 +643,8 @@ int mptcp_userspace_pm_dump_addr(struct sk_buff *msg, struct sock *sk; void *hdr; + BUILD_BUG_ON(sizeof(struct id_bitmap) > sizeof(cb->ctx)); + bitmap = (struct id_bitmap *)cb->ctx; msk = mptcp_userspace_pm_get_sock(info); From patchwork Fri Feb 21 15:43:57 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthieu Baerts X-Patchwork-Id: 13985727 X-Patchwork-Delegate: kuba@kernel.org 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 BE6CB1F2361; Fri, 21 Feb 2025 15:44:20 +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=1740152660; cv=none; b=W4LQRSCdYGGUHJspMuGJQKAwQBdsupMDJJununhglCk9mUNoGKnzqYebToctxzSD4LXpCylCGcismVv+2WPYJ4n7XNpL7Va/zc5D2AAvKp1nz8GuL1D1Fdk9I+g4PVX5Fz4lIxdmxDder0qibxhx6o+iKYPuvVf0mPNFJBkiDsw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740152660; c=relaxed/simple; bh=pQPGIvMzNeYx4Q0CrQXplQN2LLHgNfeabYxuJWj4DI8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Ha+TMGqyUm8eKRSr0y1/vruIdNc3gnr62c1tiylLojbO7Q6oPEiu4At+V0gCNpnWJ9eAZemqbHnOpWpxtJhhLlza+xIs60vduCxUaKbsfw9i2iFTJArcVTIl64N6qPx9inqRXbaoBiUIU+dXEVds1zZeIUyubyMFSXWUH/VqEic= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=dn+kjv46; 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="dn+kjv46" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2C445C4CEE2; Fri, 21 Feb 2025 15:44:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740152660; bh=pQPGIvMzNeYx4Q0CrQXplQN2LLHgNfeabYxuJWj4DI8=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=dn+kjv465ahmOCEBrqWyLkGDu4+75rwFGjdkpaguS3/7DlqUvfvyxFk3h+kcb81tl rte9IEVwxMXa3RjrHBb6+scdrVgrksfHkYv2Lnrdd7omB+d6wJiO1NC1bCrCSB710q MfLWCsQZpn1zKvtKgGqRbLLFC/C1cJgigio1gxmtU0RDTHOuT6+EPLVcCnrTh8mgy5 LwZL2bqyuhT/cADCKlnNIPzHn/MYTlRiSaq472Tv6kur5oDZUZeebOKi0DfpnKOZOl yDNlTOnJYIjwIByCCQk+2Tct0SU8UxDf31S+xMApYwPtG20fviKtukc0AE2rdWlfPG Sr0vtrx4IQovw== From: "Matthieu Baerts (NGI0)" Date: Fri, 21 Feb 2025 16:43:57 +0100 Subject: [PATCH net-next 04/10] mptcp: pm: add mptcp_pm_genl_fill_addr helper Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-4-2b70ab1cee79@kernel.org> References: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-0-2b70ab1cee79@kernel.org> In-Reply-To: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-0-2b70ab1cee79@kernel.org> To: mptcp@lists.linux.dev, Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , Geliang Tang X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4315; i=matttbe@kernel.org; h=from:subject:message-id; bh=uPf7ZClZZ2ViGTVsax9aa8Onj0ebgr5nDCj9zENtnzY=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBnuJ9HIC8Dnya30zl0NImgJoAfnT3l3JAx4+X+L d8bp1wolO6JAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZ7ifRwAKCRD2t4JPQmmg c02zEACMjjgv6eRqQHpFOwKt7ABfx1YxStSqt4iEeSVQNa7TA2vXw/nmiMfyClypAA7/NWC9CVk vwr1RDBeV8npcvp7CCmgJ3VZ3bYmm0JiM5xPSN148UpO6Au5UEZnYCWEl35OA7RFKy2nyXseazu Px/+mEdMAt47jA8o5+bI+ZpZwqLYyqwVdKitH36cvI29uk9joabns2fBM0579HEwrCmt118+7Lo g+GhJoQ+A7TGTSfidPORkN/awuRK8j+trzigtKoCA/+da2t5nO6DwvpxqBBz9lgiazAPTGf78gj y5c2mNRTZKd8FkObtpaqly8LfKcowxa7QwVOxv2Cr66UR8Cc/yZMW1KCoumQc41aadUwiBJknyO 1vU9rimUG7tTSVVgzv5fxHaa9sGNRd+buN46OB5cq4ygbGOeMuZcmj25GDHPHYZEHnp3x6yGF3S SHgZdjsdJnmeSUxlcd9i3mrqBuwPOLOJ/khAo8UNdaEtVEr15leWXSkLZ0CU9aQFcUgnD/RufcB 20PxvVi2SKWGQRKBw4ev+/axUTkfWJIuoqf2IJIVByg1n1hfymD/njqaIzIwZXRl9E1/BOD6zLI xLW8ssJHgAxvjfzN9hHdeO2Gubf8ez5VQYE1EEIQPV/8/Tc9jt0nB3M6XdP1/5OCIW4EJ8wHhKM Mj1gU7y9MNT7zKw== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 X-Patchwork-Delegate: kuba@kernel.org From: Geliang Tang To save some redundant code in dump_addr() interfaces of both the netlink PM and userspace PM, the code that calls netlink message helpers (genlmsg_put/cancel/end) and mptcp_nl_fill_addr() is wrapped into a new helper mptcp_pm_genl_fill_addr(). Signed-off-by: Geliang Tang Reviewed-by: Matthieu Baerts (NGI0) Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/pm.c | 21 +++++++++++++++++++++ net/mptcp/pm_netlink.c | 12 +----------- net/mptcp/pm_userspace.c | 12 +----------- net/mptcp/protocol.h | 3 +++ 4 files changed, 26 insertions(+), 22 deletions(-) diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index b1f36dc1a09113594324ef0547093a5447664181..16cacce6c10fe86467aa7ef8e588f9f535b586fb 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -489,6 +489,27 @@ int mptcp_pm_nl_get_addr_doit(struct sk_buff *skb, struct genl_info *info) return ret; } +int mptcp_pm_genl_fill_addr(struct sk_buff *msg, + struct netlink_callback *cb, + struct mptcp_pm_addr_entry *entry) +{ + void *hdr; + + hdr = genlmsg_put(msg, NETLINK_CB(cb->skb).portid, + cb->nlh->nlmsg_seq, &mptcp_genl_family, + NLM_F_MULTI, MPTCP_PM_CMD_GET_ADDR); + if (!hdr) + return -EINVAL; + + if (mptcp_nl_fill_addr(msg, entry) < 0) { + genlmsg_cancel(msg, hdr); + return -EINVAL; + } + + genlmsg_end(msg, hdr); + return 0; +} + static int mptcp_pm_dump_addr(struct sk_buff *msg, struct netlink_callback *cb) { const struct genl_info *info = genl_info_dump(cb); diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c index 1a0695e087af02347678b9b6914d303554bcf1f3..98fcbf8b1465649961c568c6f8978e91d0a53668 100644 --- a/net/mptcp/pm_netlink.c +++ b/net/mptcp/pm_netlink.c @@ -1798,7 +1798,6 @@ int mptcp_pm_nl_dump_addr(struct sk_buff *msg, struct mptcp_pm_addr_entry *entry; struct pm_nl_pernet *pernet; int id = cb->args[0]; - void *hdr; int i; pernet = pm_nl_get_pernet(net); @@ -1813,19 +1812,10 @@ int mptcp_pm_nl_dump_addr(struct sk_buff *msg, if (entry->addr.id <= id) continue; - hdr = genlmsg_put(msg, NETLINK_CB(cb->skb).portid, - cb->nlh->nlmsg_seq, &mptcp_genl_family, - NLM_F_MULTI, MPTCP_PM_CMD_GET_ADDR); - if (!hdr) + if (mptcp_pm_genl_fill_addr(msg, cb, entry) < 0) break; - if (mptcp_nl_fill_addr(msg, entry) < 0) { - genlmsg_cancel(msg, hdr); - break; - } - id = entry->addr.id; - genlmsg_end(msg, hdr); } } rcu_read_unlock(); diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c index b69fb5b18130cb3abd08e3ef47004f599895486a..bedd6f9ebc8b07871d317dfaf65135342cdeeeee 100644 --- a/net/mptcp/pm_userspace.c +++ b/net/mptcp/pm_userspace.c @@ -641,7 +641,6 @@ int mptcp_userspace_pm_dump_addr(struct sk_buff *msg, struct mptcp_sock *msk; int ret = -EINVAL; struct sock *sk; - void *hdr; BUILD_BUG_ON(sizeof(struct id_bitmap) > sizeof(cb->ctx)); @@ -659,19 +658,10 @@ int mptcp_userspace_pm_dump_addr(struct sk_buff *msg, if (test_bit(entry->addr.id, bitmap->map)) continue; - hdr = genlmsg_put(msg, NETLINK_CB(cb->skb).portid, - cb->nlh->nlmsg_seq, &mptcp_genl_family, - NLM_F_MULTI, MPTCP_PM_CMD_GET_ADDR); - if (!hdr) + if (mptcp_pm_genl_fill_addr(msg, cb, entry) < 0) break; - if (mptcp_nl_fill_addr(msg, entry) < 0) { - genlmsg_cancel(msg, hdr); - break; - } - __set_bit(entry->addr.id, bitmap->map); - genlmsg_end(msg, hdr); } spin_unlock_bh(&msk->pm.lock); release_sock(sk); diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index ca65f8bff632ff806fe761f86e9aa065b0657d1e..256677c43ca6514bf487a6d897240ae012b6128e 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -1057,6 +1057,9 @@ void mptcp_fastopen_subflow_synack_set_params(struct mptcp_subflow_context *subf struct request_sock *req); int mptcp_nl_fill_addr(struct sk_buff *skb, struct mptcp_pm_addr_entry *entry); +int mptcp_pm_genl_fill_addr(struct sk_buff *msg, + struct netlink_callback *cb, + struct mptcp_pm_addr_entry *entry); static inline bool mptcp_pm_should_add_signal(struct mptcp_sock *msk) { From patchwork Fri Feb 21 15:43:58 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthieu Baerts X-Patchwork-Id: 13985728 X-Patchwork-Delegate: kuba@kernel.org 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 2EDDC1F4275; Fri, 21 Feb 2025 15:44:22 +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=1740152663; cv=none; b=IEOaAun7vr3DGfkktm8hBFs9LgI9daa3VS4ZKGOFcwz7eMxwzy4kbfUrKcEc5va5CfhhygzDAS2+1I2JMt1IP0yt10WHAd38scGq9U9Ngv2qXhlKSw4VjR7RgD5zXRAqdEYfaEqWsUiFTDTV8AKRJ5IRu4iQpez1UoUPLAcHCmI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740152663; c=relaxed/simple; bh=J+IXwnOTNXP0fpRQ/SqXuNG3muK0hvCfC2BIDBbhPT0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=V9oYpamrYeXLi/PpMAeFrmzBuO0q2yVvcURATuqI0uvOoZdLh2Xoo0cLGYqdeqRNldidBIzYPIgO+JrJeETijZPFg3iz9USzvLseDu5bVSTL2Sskel8hKbmDMm7gAxDDbcBuE4kyWzR7iZwruQFoHjv7FmPbMUOBWV3beo1h1e0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=tvyLLQYO; 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="tvyLLQYO" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A38BAC4CED6; Fri, 21 Feb 2025 15:44:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740152662; bh=J+IXwnOTNXP0fpRQ/SqXuNG3muK0hvCfC2BIDBbhPT0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=tvyLLQYOL4ddBQb7DYF1sphenSwCA5ACfcRQ7NBrTi4Y4QuTn9UfxHrtO+TW6V75m gUG7IkuBG0SSoubUVWLGEWIC0Zxw+/rGasYsOBwepjCMiOePATThMy0a67gdtmMe5B 4XLqERPNG9BKp8akJAb6ylf6yVMngNsRACfs42DrDLRY3k3VV7BMqtPIrcHQXkQrWX zF5YiRgqS8e8vtgvK0kgKeKyZXSpftufzw7nSwfkWqeZ2Z95lbRx7I90okBlcTjvfo q1PhwTIXgp11IiGOSukwCfHL1jHHP6tQCVJLm/qv5OjM4JGtFQaAvsUnz3m+s61o82 y46LfRHfFuCkA== From: "Matthieu Baerts (NGI0)" Date: Fri, 21 Feb 2025 16:43:58 +0100 Subject: [PATCH net-next 05/10] mptcp: pm: drop match in userspace_pm_append_new_local_addr Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-5-2b70ab1cee79@kernel.org> References: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-0-2b70ab1cee79@kernel.org> In-Reply-To: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-0-2b70ab1cee79@kernel.org> To: mptcp@lists.linux.dev, Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , Geliang Tang X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2195; i=matttbe@kernel.org; h=from:subject:message-id; bh=+WHQJW9mFchuIGDnd54gHSZuQ8fDbAw3VW8ytyvo7ME=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBnuJ9H4PJtjy3xdXnpJ7jp34XGXnSRSQyO+1RyW qgN37bR2ueJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZ7ifRwAKCRD2t4JPQmmg c2ikEADYykoKvmb15wQS+cf/vzizuepPoy39GxXls1kSuAUUvonSKoBBlsSzCYx5QS2vjTpKpXZ 0kD+9p4QNy+3Jg5+j0Fd3xHUCU3oKbR9XJLz42JlZBztWt8586wDgDNzZBjsp/jvZglYwYTKQg0 pvxl5urarPbmxiAnuG83zn2EVuGUet9qE4LaO1qLViHHjZtSURAqsU4xXn1VJFsja7eZusIfz++ SEvmabDnlRYEA4G+MfUpLZHMW87LL5jSg3+sjS7RNct1p+4C2OAcskDu+d1/x3y6qbGd5p22RYq DOxQ8o3y7ZDeFrmDYktGBKFHCKVSfFToHVwX2EBIzCLG4NAQbFuv5GJmTF7jjXJDcMPZm5Hc4yD Po9v1NjdSOVN77/uPwQe4wxolCPQswN2/r+8a5ZgpaEedO11PfA9IYrDq6ccnlEslr4WJjMX9h+ 028CYWLcp/rxLTTy2Ld7HeZXBX7TdPwv+/TpxEnGCVaj7YuhP5ln/72vk1n/HvZFiL33+neZ05G ih9UFyJwMB2alWeKIY8y+cO9EWffdnsyNG+c6UPnSlSH5nzZNUscFX0ruMYV7QVb8AzB7Fjfr1K r/mWIYNkCUPI+YNE7IMTZNE0qgE9FCNV//rOxqamK4NEeL9byWhk+x9NZQ6lEUaFsAE2ip0+pux wmGx/gZch3WHA9A== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 X-Patchwork-Delegate: kuba@kernel.org From: Geliang Tang The variable 'match' in mptcp_userspace_pm_append_new_local_addr() is a redundant one, and this patch drops it. No need to define 'match' as 'struct mptcp_pm_addr_entry *' type. In this function, it's only used to check whether it's NULL. It can be defined as a Boolean one. Also other variables 'addr_match' and 'id_match' make 'match' a redundant one, which can be replaced by directly checking 'addr_match && id_match'. Signed-off-by: Geliang Tang Reviewed-by: Matthieu Baerts (NGI0) Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/pm_userspace.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c index bedd6f9ebc8b07871d317dfaf65135342cdeeeee..a16e2fb45a6c68bc0c3c187122a54765ef0fb259 100644 --- a/net/mptcp/pm_userspace.c +++ b/net/mptcp/pm_userspace.c @@ -48,7 +48,6 @@ static int mptcp_userspace_pm_append_new_local_addr(struct mptcp_sock *msk, bool needs_id) { DECLARE_BITMAP(id_bitmap, MPTCP_PM_MAX_ADDR_ID + 1); - struct mptcp_pm_addr_entry *match = NULL; struct sock *sk = (struct sock *)msk; struct mptcp_pm_addr_entry *e; bool addr_match = false; @@ -63,16 +62,12 @@ static int mptcp_userspace_pm_append_new_local_addr(struct mptcp_sock *msk, if (addr_match && entry->addr.id == 0 && needs_id) entry->addr.id = e->addr.id; id_match = (e->addr.id == entry->addr.id); - if (addr_match && id_match) { - match = e; + if (addr_match || id_match) break; - } else if (addr_match || id_match) { - break; - } __set_bit(e->addr.id, id_bitmap); } - if (!match && !addr_match && !id_match) { + if (!addr_match && !id_match) { /* Memory for the entry is allocated from the * sock option buffer. */ @@ -90,7 +85,7 @@ static int mptcp_userspace_pm_append_new_local_addr(struct mptcp_sock *msk, list_add_tail_rcu(&e->list, &msk->pm.userspace_pm_local_addr_list); msk->pm.local_addr_used++; ret = e->addr.id; - } else if (match) { + } else if (addr_match && id_match) { ret = entry->addr.id; } From patchwork Fri Feb 21 15:43:59 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthieu Baerts X-Patchwork-Id: 13985729 X-Patchwork-Delegate: kuba@kernel.org 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 508B9205514; Fri, 21 Feb 2025 15:44:25 +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=1740152665; cv=none; b=fBJE/R9v3hZ+m4xgihjQ/XqAFiAfk9RuoqHHsX4kzWzV3o2YbJIUeyhsZoVsbUnWLF4LlaSJNsrWfOoCQZx+vMX6qeDvkKJKUAaMcj6mqCK+tAtDe9tDmyE5/M6F5mgTqCTN8GGH3MttmhglMNWPhwm41rLVEi/463bbXpKnb+I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740152665; c=relaxed/simple; bh=HO/U2K0VlOA7A2+ePqQL17SLbIZk0lISzN8lAeSxivs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=W+ZT1GA2azR6U+h2JtzzoZiwPdAJL5RfwDgnqnptOQkBfSr+9FnKSk+sg6AdsAtpJ1qGGCGn5G50YeJkL6qklaVKmK/CWh0+H5F1JkJ0yvYYXZy1Aj88QvcNFHiS2CXS6VsWytmBgS+vzJKuQTbnRj/Igitz7SBtTj1K91NGYX0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GE9sEeWh; 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="GE9sEeWh" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 245A1C4CEE2; Fri, 21 Feb 2025 15:44:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740152665; bh=HO/U2K0VlOA7A2+ePqQL17SLbIZk0lISzN8lAeSxivs=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=GE9sEeWhBaofGP+L7RDN6oxNV6/CrpqTIgl4Judv6b2DL98rILFXbMWkBbnGL71wl RmNmpqdRsCu85/sDuceiZGwP+Dt+U6ZcfN4yAJrihGwtjvMeeqQxDeUAUs9V4Q+wHN wfh9bVrF/kfqsjYoqJRXzSCvtCq+p+tQAtBdLjYoKV7NNYfG0cRLMf5/YEoQ0Mq3eO x4cPMzJt3hleINr0x8SbnTd1DE5eiISW3brOpJ/3VLtj6+hB7Y8lNZsdNSgDUI6oz8 Pwd/6M/Tf4esD+N73piHSb3Rrjv3aXFj7s75XeOoY2g8xd75z7Qwvomf3EnMCsxCHv YD8pshw4WMmUw== From: "Matthieu Baerts (NGI0)" Date: Fri, 21 Feb 2025 16:43:59 +0100 Subject: [PATCH net-next 06/10] mptcp: pm: drop inet6_sk after inet_sk Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-6-2b70ab1cee79@kernel.org> References: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-0-2b70ab1cee79@kernel.org> In-Reply-To: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-0-2b70ab1cee79@kernel.org> To: mptcp@lists.linux.dev, Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , Geliang Tang X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2306; i=matttbe@kernel.org; h=from:subject:message-id; bh=xGhLLvT9C5RFpvlGZaPhSeZsH3tKwxAeTGRWovFQLzc=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBnuJ9HwHj2cdP8JdEWAW7+fxOMvTAWNMTF/zfFG whUJ+aagtuJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZ7ifRwAKCRD2t4JPQmmg c4FgD/sHsOfaWNxJsg1FJPJIvvcqVadxxq0Fk7r9ShWf33kzeHEghEA7gEbMwdUhr/vcRTo9grM SbKZkyBUKMbsCwKHG+w/nIVUZ6KCazYkYy1cM+KqMbwtwa5EkDapbRW1D6l256GipbAhyjzcjNc PGUiXnc5A3WenFhHowtvRNfuTjsQLzHQT4hfObP+I0T1ZtVYWN7aeJ9fbASY0fPNFAwGb2E9lxv WIPVHMlhoP0X9Y3+XLyJw5XZirZxiJljQ3Zgca5HtUuvpdv4d+fgQBEdbJmkidcA/wlRdPfC4+X dO+zxi0DskGr8BamK6wyMZpXcF2PkmDug4IKF2vGWLamkATIPGKg2xjmRiFh48x2r3pUPeixdsZ 6IBRIu8SO6ZJI4q+vJhqgjly6qh67MX3QT/wNNYAERGFVBfxRQdIGmlmtdodtBBqp/KlKFQ930k m2uMU+i3pTF3H8vHVHovcWl5ZvkwjpHPKK/j+7ajVxef+YoOkPJWkjUdHkEZQy7Ebxecfv8sJFb fCsYABBdYRUdi4+FcDKoUrk4RBEdoIcjYpD0Amcni5jY99TH1w3MUgF69FjbDlF2FYrBgpg4tJ9 W+yYly5Qu27nrauoNLWcwoCm+WZOma4NfIuHx3qExAbaU+0z15SjAj2DbKBuL1ukoGqtW8mdMpa UufV/YUqBApHA1Q== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 X-Patchwork-Delegate: kuba@kernel.org From: Geliang Tang In mptcp_event_add_subflow(), mptcp_event_pm_listener() and mptcp_nl_find_ssk(), 'issk' has already been got through inet_sk(). No need to use inet6_sk() to get 'ipv6_pinfo' again, just use issk->pinet6 instead. This patch also drops these 'ipv6_pinfo' variables. Signed-off-by: Geliang Tang Reviewed-by: Matthieu Baerts (NGI0) Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/pm_netlink.c | 8 ++------ net/mptcp/pm_userspace.c | 4 +--- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c index 98fcbf8b1465649961c568c6f8978e91d0a53668..f67b637c1fcf7c2930ced8b5c6b9df156118cbcd 100644 --- a/net/mptcp/pm_netlink.c +++ b/net/mptcp/pm_netlink.c @@ -2022,9 +2022,7 @@ static int mptcp_event_add_subflow(struct sk_buff *skb, const struct sock *ssk) break; #if IS_ENABLED(CONFIG_MPTCP_IPV6) case AF_INET6: { - const struct ipv6_pinfo *np = inet6_sk(ssk); - - if (nla_put_in6_addr(skb, MPTCP_ATTR_SADDR6, &np->saddr)) + if (nla_put_in6_addr(skb, MPTCP_ATTR_SADDR6, &issk->pinet6->saddr)) return -EMSGSIZE; if (nla_put_in6_addr(skb, MPTCP_ATTR_DADDR6, &ssk->sk_v6_daddr)) return -EMSGSIZE; @@ -2251,9 +2249,7 @@ void mptcp_event_pm_listener(const struct sock *ssk, break; #if IS_ENABLED(CONFIG_MPTCP_IPV6) case AF_INET6: { - const struct ipv6_pinfo *np = inet6_sk(ssk); - - if (nla_put_in6_addr(skb, MPTCP_ATTR_SADDR6, &np->saddr)) + if (nla_put_in6_addr(skb, MPTCP_ATTR_SADDR6, &issk->pinet6->saddr)) goto nla_put_failure; break; } diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c index a16e2fb45a6c68bc0c3c187122a54765ef0fb259..6bf6a20ef7f3e50750b648032c9e8961d3222890 100644 --- a/net/mptcp/pm_userspace.c +++ b/net/mptcp/pm_userspace.c @@ -460,9 +460,7 @@ static struct sock *mptcp_nl_find_ssk(struct mptcp_sock *msk, break; #if IS_ENABLED(CONFIG_MPTCP_IPV6) case AF_INET6: { - const struct ipv6_pinfo *pinfo = inet6_sk(ssk); - - if (!ipv6_addr_equal(&local->addr6, &pinfo->saddr) || + if (!ipv6_addr_equal(&local->addr6, &issk->pinet6->saddr) || !ipv6_addr_equal(&remote->addr6, &ssk->sk_v6_daddr)) continue; break; From patchwork Fri Feb 21 15:44:00 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthieu Baerts X-Patchwork-Id: 13985730 X-Patchwork-Delegate: kuba@kernel.org 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 7CB65205514; Fri, 21 Feb 2025 15:44:27 +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=1740152668; cv=none; b=FscV79hpMKIR0fycL5la5NWOmoHkFoFIVD28P3LXolB21yx8xuURK5G8vIniMXb0eqGJERdGgnTa5U1fK66RmA0TfDYNoyZrO0uN+r7xDVSP0FwW1FZikmt1KD3IbiWpMwBQ6n2f14bYA9QPO3t2VrJSfD/PVVGcZMEx6Hm0fMw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740152668; c=relaxed/simple; bh=a1PHG4oRYa5wYXlrTgrvlkE6wAw+WAhSTwMJ3XPR460=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=dLP5wWYDLmswFCoCvgI0rkwy40HVdl/MNBrGTog3YZXJmVdpz3jmPgh8FJoYOxCWfidgTPU6NylBBc0amhmbs0KUwMATqny+ovur2I0VvBe6mGH1PvgG6Fda0tKqxpeByCikqiQnSrAB3do2Z50qsh6a2WTZteZCNAvzk85T66U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=r2EL121H; 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="r2EL121H" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9ABEAC4CED6; Fri, 21 Feb 2025 15:44:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740152667; bh=a1PHG4oRYa5wYXlrTgrvlkE6wAw+WAhSTwMJ3XPR460=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=r2EL121HxSLqw57ez/5DP/DYtbt/130TGkJOjS0k5qpbTgqQBvbqGC/EucLxoytx4 tWlfPreHiM71kEQtpVkkdihbC03WvoDqyk4uwQpEWuj2T+sCXoRd6j2qx6hoBii78i +exBxtzWOiNYPThiAXkzUTUgrcYu0MpQ4rJKl70TI3CIN4NtTuwgNgBiL1DDlm2S4N itiPp374ysbgF6Ed9aqQVG/ySMEzTI3t8c1qu0VhqZ+uwYiIf4cTB2WPcrOs+sEqrv RohjnMtBc3bxOUGwq81xw+uaJNpEz4syrZqF/ukxZkbdecw0a5Mc7EKiZTsmS3zbaO AfqecZ0dcxxsg== From: "Matthieu Baerts (NGI0)" Date: Fri, 21 Feb 2025 16:44:00 +0100 Subject: [PATCH net-next 07/10] mptcp: pm: use ipv6_addr_equal in addresses_equal Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-7-2b70ab1cee79@kernel.org> References: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-0-2b70ab1cee79@kernel.org> In-Reply-To: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-0-2b70ab1cee79@kernel.org> To: mptcp@lists.linux.dev, Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , Geliang Tang X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1079; i=matttbe@kernel.org; h=from:subject:message-id; bh=B4keAA5ZHYw+PbPi00B+5NzpE+JM2Ll5Ekvtr28WNco=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBnuJ9HgKgztIEWjGR2ANIpDvvp+nYp3ap67g0KX WoB/r4V6jKJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZ7ifRwAKCRD2t4JPQmmg cxY/D/wM8bSZa+l+C2F4bJak/9vTgbHghg2z7NeJwx03eR6zVgiB1GAhDuou2gs2ZMuK0DaXhVS NSzXNFy471FH4Q4drvYlOh9iFeXmdZnrv5z9XYeJG6RieNP2lpQAcBWdvFxIBEncy6rYfSLWMLw eC/5eztgX60aT3trgBuF15+zCBplPun11Cfbduwj7yc1RAHU4f3mg1eAUl/Fly+rdO2pP6xUMiH /YtJVQt82oHkhwzAp1nGcIlO3+AImjAf8Aj7MsTzwK9PIx+LcIZ3Ale6W9sCDs9VBzAzbp5qHUG 4yyOyaYOl4npsj7ocT9n3/e0thQCfhqtDk2ujoxPOPAfFzT3T6T+0T4N52osO+QlmMmHqyvLbHo sCvF3un7vbM7V9Dyzh/cS78kBsHruMXBJLiF3bg/z6etulBxE/kY/5AdGwTo7BRmCA08HmX5XTq 9bfbw7Zu6gIczvARJLMq5ySOHLJisWs5ttGkONeKMCOXtVao8j9To4aBC8QGfVqf+ChO7H4my6S TYCCfIAYeuBb34+RJ/XEhj7wH7aQfhkAcHbpzTP693mOtpiH6Q8lIif5tkUAQpKlYwKkRojA3cT DIAujJx7vdQjOzH3f5+JowlSRi4Hc453mBY6r4l/Z63sKiBBVUJ3qZHCfJviXuUYmlYHbXTypcq THl/f8Ms0z56wRQ== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 X-Patchwork-Delegate: kuba@kernel.org From: Geliang Tang Use ipv6_addr_equal() to check whether two IPv6 addresses are equal in mptcp_addresses_equal(). This is more appropriate than using !ipv6_addr_cmp(). Signed-off-by: Geliang Tang Reviewed-by: Matthieu Baerts (NGI0) Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/pm_netlink.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c index f67b637c1fcf7c2930ced8b5c6b9df156118cbcd..ef85a60151ad796b445afc21bcbcae1c52ef64b6 100644 --- a/net/mptcp/pm_netlink.c +++ b/net/mptcp/pm_netlink.c @@ -64,7 +64,7 @@ bool mptcp_addresses_equal(const struct mptcp_addr_info *a, addr_equals = a->addr.s_addr == b->addr.s_addr; #if IS_ENABLED(CONFIG_MPTCP_IPV6) else - addr_equals = !ipv6_addr_cmp(&a->addr6, &b->addr6); + addr_equals = ipv6_addr_equal(&a->addr6, &b->addr6); } else if (a->family == AF_INET) { if (ipv6_addr_v4mapped(&b->addr6)) addr_equals = a->addr.s_addr == b->addr6.s6_addr32[3]; From patchwork Fri Feb 21 15:44:01 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthieu Baerts X-Patchwork-Id: 13985731 X-Patchwork-Delegate: kuba@kernel.org 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 B52051E47CA; Fri, 21 Feb 2025 15:44:30 +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=1740152670; cv=none; b=JEXw6QKsnzfqp+PMrGVGeBvrvrJri7fFnapMQ7OszxKwS0p008j5zdYe/OYJkjZHHgPdr+iZdqZI7SHHddeBjmecftjgqIojyny0Jk5XwFWFQNe9p/qVJDqpUR2446g7Qmm9uPh2jKSq0DX+9VXkGTfzUAsy4OOeTljD0RFdwF8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740152670; c=relaxed/simple; bh=pIHmmZWQGeAQvcIrXjKJgOXjxp9GrZuLJAqY4jRYyR0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mjKquQbpr3GJ3A4o6HIUdlhPE5nRYdO8b78o9tHXXy6cQNQ0qteZE78LrOvmudHYR79jzQ6AjHI7cZ+1viZp8btTykSQu41KTUNF2iS2F4Kcujhgp2LAg4OaR55M7Sl1HWKtvdZ0JWqiSO7ev20Qf/jai8cC82gMU4TGGhWyGMo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rnn0hpm9; 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="rnn0hpm9" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1E39CC4CEE4; Fri, 21 Feb 2025 15:44:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740152670; bh=pIHmmZWQGeAQvcIrXjKJgOXjxp9GrZuLJAqY4jRYyR0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=rnn0hpm9NF0bKnTpwSiVgysq0AhvbCI36Gu/UTlWh6bsNMMvZ/FU6JFKVritb5JgJ F7dT6gm1/JfEwS/f6iMnAJ3T1an/I4A32f47QJw4bCdYmDstarxrJoQLQvFbEjo9sE XPDMIfIX+wyG3HrQ6q30kabtFD8VzD91ahbvA4cBD0IvQMIxujC5+0a4OeKZ+ZnNBm YQZSQx3AmqWXPJqVquyhWnqGWwGCjhywQMAgJi1o7NQvYiEOUuTF7FEbvqoNPIDHZl /12N9ZgQwfMxfrqISomST8sVTgkCBPHPKN1ciFc4neiTXOiaiDh82a1w9VFMFEXGD1 H2c5y1zEijF2w== From: "Matthieu Baerts (NGI0)" Date: Fri, 21 Feb 2025 16:44:01 +0100 Subject: [PATCH net-next 08/10] mptcp: sched: split get_subflow interface into two Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-8-2b70ab1cee79@kernel.org> References: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-0-2b70ab1cee79@kernel.org> In-Reply-To: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-0-2b70ab1cee79@kernel.org> To: mptcp@lists.linux.dev, Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , Geliang Tang X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4111; i=matttbe@kernel.org; h=from:subject:message-id; bh=4etufhjOFcm5rpcVbLB5Hl2mjEGGh+/HGlGO5Nqd8vQ=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBnuJ9HXut+RXO7bryGeSFWKp6mSx5zeJQUIME1H 8Yu2qA9xJOJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZ7ifRwAKCRD2t4JPQmmg c2pHEAC31BgHJRnIMxVTYaG69jvX2fXo6fYWm6lvUVKdz7Xtiol5KCkrVTgXMjmp4i/L7X/Wp4q 9I8Y2k+2inMuNV1dbvkcrQv6yCvUWp9JZ0t92m0zGDUjNjOKbrsyTLOayItHIiQEHHyv1pJ3DtE KyNtvutQ8ZRcnnU5R1wG1ZCWFEQZq4hHZP4h2CSv4BkP7orDQ/QnfYnekiKHlB4InwZ41DiH0wl LmYPvR9Cn7TCHh5eP5TJ4Z1kjF/LUPY5o7k0frK4aCaJyNK9HqHN/h0l9ARHZIz6c7N71lDN77U n1zw3uQsLDeymlDg2PorV5GLr4pkUhMqmhlGVp3TTA0JSfPwhanXVe1U9NyxlpIHzq+lO7ocKPv caVcOHm7tTaAr1Ksqee9cnCZxDxmrmxaJ4dnZNV4qRqafqdvEQHueJcPugEmvAEfT7jVJs2yPBp K2jD9uCb+txcPJ06pOnam6BQHY5SHVggH40LXMJRIX35zMAlzSyT8Ivbz54YjgPDzuTefkyxhlo SdAg7ltQkpSB72EBkFhWX4BnMM1+9ip8MNHYFJ7IYWvf+xUEdapvB0kSNbOS3w11JCWapDNI7+2 ++/tg7qaqFBceX0Pfpbn+WZjs1iglpX1RYlyznlx8HtDowaJ8u1lwOa53LabQdBG4HC0bjSkkLh DRzn8WMihb9caPA== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 X-Patchwork-Delegate: kuba@kernel.org From: Geliang Tang get_retrans() interface of the burst packet scheduler invokes a sleeping function mptcp_pm_subflow_chk_stale(), which calls __lock_sock_fast(). So get_retrans() interface should be set with BPF_F_SLEEPABLE flag in BPF. But get_send() interface of this scheduler can't be set with BPF_F_SLEEPABLE flag since it's invoked in ack_update_msk() under mptcp data lock. So this patch has to split get_subflow() interface of packet scheduer into two interfaces: get_send() and get_retrans(). Then we can set get_retrans() interface alone with BPF_F_SLEEPABLE flag. Signed-off-by: Geliang Tang Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts (NGI0) --- include/net/mptcp.h | 5 +++-- net/mptcp/sched.c | 35 ++++++++++++++++++++++++----------- 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/include/net/mptcp.h b/include/net/mptcp.h index 814b5f2e3ed5e3e474a2bac5e4cca5a89abcfe1c..2c85ca92bb1c39989ae08a74ff4ef9b42099e60d 100644 --- a/include/net/mptcp.h +++ b/include/net/mptcp.h @@ -103,13 +103,14 @@ struct mptcp_out_options { #define MPTCP_SUBFLOWS_MAX 8 struct mptcp_sched_data { - bool reinject; u8 subflows; struct mptcp_subflow_context *contexts[MPTCP_SUBFLOWS_MAX]; }; struct mptcp_sched_ops { - int (*get_subflow)(struct mptcp_sock *msk, + int (*get_send)(struct mptcp_sock *msk, + struct mptcp_sched_data *data); + int (*get_retrans)(struct mptcp_sock *msk, struct mptcp_sched_data *data); char name[MPTCP_SCHED_NAME_MAX]; diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c index df7dbcfa3b71370cc4d7e4e4f16cc1e41a50dddf..94dc4b3ad82f6a462961ae5195b7eba2271d8275 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -16,13 +16,25 @@ static DEFINE_SPINLOCK(mptcp_sched_list_lock); static LIST_HEAD(mptcp_sched_list); -static int mptcp_sched_default_get_subflow(struct mptcp_sock *msk, +static int mptcp_sched_default_get_send(struct mptcp_sock *msk, + struct mptcp_sched_data *data) +{ + struct sock *ssk; + + ssk = mptcp_subflow_get_send(msk); + if (!ssk) + return -EINVAL; + + mptcp_subflow_set_scheduled(mptcp_subflow_ctx(ssk), true); + return 0; +} + +static int mptcp_sched_default_get_retrans(struct mptcp_sock *msk, struct mptcp_sched_data *data) { struct sock *ssk; - ssk = data->reinject ? mptcp_subflow_get_retrans(msk) : - mptcp_subflow_get_send(msk); + ssk = mptcp_subflow_get_retrans(msk); if (!ssk) return -EINVAL; @@ -31,7 +43,8 @@ static int mptcp_sched_default_get_subflow(struct mptcp_sock *msk, } static struct mptcp_sched_ops mptcp_sched_default = { - .get_subflow = mptcp_sched_default_get_subflow, + .get_send = mptcp_sched_default_get_send, + .get_retrans = mptcp_sched_default_get_retrans, .name = "default", .owner = THIS_MODULE, }; @@ -73,7 +86,7 @@ void mptcp_get_available_schedulers(char *buf, size_t maxlen) int mptcp_register_scheduler(struct mptcp_sched_ops *sched) { - if (!sched->get_subflow) + if (!sched->get_send) return -EINVAL; spin_lock(&mptcp_sched_list_lock); @@ -164,10 +177,9 @@ int mptcp_sched_get_send(struct mptcp_sock *msk) return 0; } - data.reinject = false; if (msk->sched == &mptcp_sched_default || !msk->sched) - return mptcp_sched_default_get_subflow(msk, &data); - return msk->sched->get_subflow(msk, &data); + return mptcp_sched_default_get_send(msk, &data); + return msk->sched->get_send(msk, &data); } int mptcp_sched_get_retrans(struct mptcp_sock *msk) @@ -186,8 +198,9 @@ int mptcp_sched_get_retrans(struct mptcp_sock *msk) return 0; } - data.reinject = true; if (msk->sched == &mptcp_sched_default || !msk->sched) - return mptcp_sched_default_get_subflow(msk, &data); - return msk->sched->get_subflow(msk, &data); + return mptcp_sched_default_get_retrans(msk, &data); + if (msk->sched->get_retrans) + return msk->sched->get_retrans(msk, &data); + return msk->sched->get_send(msk, &data); } From patchwork Fri Feb 21 15:44:02 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthieu Baerts X-Patchwork-Id: 13985732 X-Patchwork-Delegate: kuba@kernel.org 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 C034D212FAA; Fri, 21 Feb 2025 15:44:32 +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=1740152672; cv=none; b=VTKcn4zg4ecx2RjJrOmZN+9Ah3yUsKDnl7ZQtwP23PVYv9e9TdCCHvF01vLk0F3HsMxcqLFEaqMxOo6kiTVQAMVsYwRWquO2VknRTWoH89d9M14OEkNTgziZf4FD1kd7iciWV1ndStj4+OqNHpQqeDw10bi45YGX7gqnY5TFOB0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740152672; c=relaxed/simple; bh=UBj9dMClQZezqlXlgcKU8Jj3hHkFDTNQJxKvzRTchbI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pK/I2WkMtU1xvrKUNGE4/7JcILg7U9mNmxAU/NUA1d8QTgtZdWtK0SklEJwtbi9X4T32f/xpfLR81+FtXnRVPz/YtPL/nxQT+xp2dO3RtRDlm1bY5lW+GZ/2d6/zDYLVSjvq1Zs5wV/MmoKnepVicdkB1GMS+Exky1Auq4gmmV4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YV6gmFD7; 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="YV6gmFD7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 94B4AC4CEE8; Fri, 21 Feb 2025 15:44:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740152672; bh=UBj9dMClQZezqlXlgcKU8Jj3hHkFDTNQJxKvzRTchbI=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=YV6gmFD7vretqaw78yswnEb9rjuK4OXMUH2F53Agl+IfO29KYpicFXMeFeTiCS8ne Ppjq7VSoPjTrJ/oJF++no5bInyezCCdLYm0fJiwIG5/C0nGyvi5fbSnk2l+E1LEX20 MmdFapfsdEr2cNotP/gDeruXKlHit3BGCLHIeW6Y3wLqr5Oj+NITRLBa3eTxHJng6N l1FgjcBEDFVVpWMLO94/h56vnZNRd/J90joryzCytKtmQFHiHAQ15dXl2bP3MpZU5J 7F1nmXWKhV6Qih0EIty+q8XM7id+K9pF/vDFAks3VBBn7kisFZoSvFK/viT9v4i1bQ wpW8jFRAgVDyg== From: "Matthieu Baerts (NGI0)" Date: Fri, 21 Feb 2025 16:44:02 +0100 Subject: [PATCH net-next 09/10] mptcp: sched: reduce size for unused data Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-9-2b70ab1cee79@kernel.org> References: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-0-2b70ab1cee79@kernel.org> In-Reply-To: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-0-2b70ab1cee79@kernel.org> To: mptcp@lists.linux.dev, Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2319; i=matttbe@kernel.org; h=from:subject:message-id; bh=UBj9dMClQZezqlXlgcKU8Jj3hHkFDTNQJxKvzRTchbI=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBnuJ9H7gUWwrXzNME+yQpPk/ZT71mKfIC4orEDS 3wfTgrNbjaJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZ7ifRwAKCRD2t4JPQmmg c6ecEADHWD0cgzY4TucaQaqmprk+akhhmisGItmfyJbczDy1GCzmPzM/mIvjHxdN8Qjp78Eddtn oHEExcgrjXEjY4ZwHhnbseYs49TYBPUrJfmBk2rJiPdT/V1Mgb8xpjegQFL67Jwgnrmn9FAQbIO vca3sJSQbEn7t/YXH9GqEkmUPX87Z+paZgDUG70ogj4P1ls3fYmP2WS+P98r7FC4C4XGgDP1xgr eyxbOYfK4mrvATBPvKzQmysFIIQP5/NzU3WnsNQ+J7egomgktwmdgdvDcWW84n1TEoMNtOlXJz5 m5wwbxRiGDhGdRQCJ6PjhtDS0kHxfkUo7AHTIX1OeNaMgTqKliGHpFVQy5aDBB00YuWTClzC4IS qkuuHF1W2QOx3y3fiu/hqoxDPfJ5hx95riPER6LYdFip2xa2hj/aQqaFI8eq2poWddNBm5DHS5D R+0sp339CO3SIO2Glu3G1DSrW9tjpJbuVb5yOp2sLfDlD8xACYohZdQ9cYtzYnCxbfNLFbf6FNS Kt01jn8j137pmSp2hfLkXLhOxrxKLXPCQu2IrKBPeq+graIVRTFpDxtLweYCYg0M4oNBOLuDqr7 kz6CIH1SllCgk8qif0iWXEFbeBge6dfB6myqWIXUM5lXdpsm82nGBb2AhnF6m6FC2yd8CTQzaIz bklZ1p4ZEwos09Q== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 X-Patchwork-Delegate: kuba@kernel.org Thanks for the previous commit ("mptcp: sched: split get_subflow interface into two"), the mptcp_sched_data structure is now currently unused. This structure has been added to allow future extensions that are not ready yet. At the end, this structure will not even be used at all when mptcp_subflow bpf_iter will be supported [1]. Here is a first step to save 64 bytes on the stack for each scheduling operation. The structure is not removed yet not to break the WIP work on these extensions, but will be done when [1] will be ready and applied. Link: https://lore.kernel.org/6645ad6e-8874-44c5-8730-854c30673218@linux.dev [1] Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/sched.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c index 94dc4b3ad82f6a462961ae5195b7eba2271d8275..c16c6fbd4ba2f89a2fffcfd6b1916098d7a18cbe 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -157,7 +157,7 @@ void mptcp_subflow_set_scheduled(struct mptcp_subflow_context *subflow, int mptcp_sched_get_send(struct mptcp_sock *msk) { struct mptcp_subflow_context *subflow; - struct mptcp_sched_data data; + struct mptcp_sched_data *data = NULL; msk_owned_by_me(msk); @@ -178,14 +178,14 @@ int mptcp_sched_get_send(struct mptcp_sock *msk) } if (msk->sched == &mptcp_sched_default || !msk->sched) - return mptcp_sched_default_get_send(msk, &data); - return msk->sched->get_send(msk, &data); + return mptcp_sched_default_get_send(msk, data); + return msk->sched->get_send(msk, data); } int mptcp_sched_get_retrans(struct mptcp_sock *msk) { struct mptcp_subflow_context *subflow; - struct mptcp_sched_data data; + struct mptcp_sched_data *data = NULL; msk_owned_by_me(msk); @@ -199,8 +199,8 @@ int mptcp_sched_get_retrans(struct mptcp_sock *msk) } if (msk->sched == &mptcp_sched_default || !msk->sched) - return mptcp_sched_default_get_retrans(msk, &data); + return mptcp_sched_default_get_retrans(msk, data); if (msk->sched->get_retrans) - return msk->sched->get_retrans(msk, &data); - return msk->sched->get_send(msk, &data); + return msk->sched->get_retrans(msk, data); + return msk->sched->get_send(msk, data); } From patchwork Fri Feb 21 15:44:03 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthieu Baerts X-Patchwork-Id: 13985733 X-Patchwork-Delegate: kuba@kernel.org 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 3EF10213E89; Fri, 21 Feb 2025 15:44:35 +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=1740152675; cv=none; b=rbrx+wLkGwHT8b2MHRn/FPqv4PcFiqTqHHr96k01CGwZy64tOF2XWj+AuLM65lNerTctITCDcuOcIMFVi9c0P8f77TGyfUeEgOC/n7mEKOkff8xEJjijZqvCCUEJ256wL/CSM+byUWjdqWnekoY0mllxntoRGKnEyfR0Fg3Dulc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740152675; c=relaxed/simple; bh=Wom1Z6Yf2iTnch8UEgQeD2janPDVRVMz/fyDLs5de9w=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=WXuVpbaHswLJd6e59epX4B/X+S5TFbA0cQL3axOQn9l5foN0n0pYEUxbLTl/P0P9mIlKvkH6BKw+T+0Xa1jZn5LxwMM4MEEI0r9bYEV7MdMEhlypdmpZndXznFLeSCgDsM23O7SO7mpNz8OOSVM1Bn5Qiclq46cBscDMB2OETno= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=S7BO3Q/A; 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="S7BO3Q/A" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 16E13C4CEE4; Fri, 21 Feb 2025 15:44:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740152675; bh=Wom1Z6Yf2iTnch8UEgQeD2janPDVRVMz/fyDLs5de9w=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=S7BO3Q/APfHsjQjaGHhS6sHXal6pvXJL3tKyA9mwHcbqfwMupAlmEGCcnbUR3RaqV 8/ER9Rj6bzcQQ8FENb+UhBWF28zoo/RueVMGSo6/W8X4rMUyObRPNPSekg9OfqXgbb 1EfxbO/hehgtEi2ydPYS5ny8trrUYpdpaSEZNipj/ikyZ/aI6Gcpp3r9KwuZ5cOAk3 zrGfo5mYGmi1z1JSsZcARaD977xmvtYOHte1pIAH9lK0dhfRIGIfP78Uutt/jAyIo7 MD7DE7h1po+DcuGLwnfWJRyEa89JeaFhmFTOJ5bdYn0zE5PCNABauuq5IogoKL8Dp4 Mpys5VwqVdUCA== From: "Matthieu Baerts (NGI0)" Date: Fri, 21 Feb 2025 16:44:03 +0100 Subject: [PATCH net-next 10/10] mptcp: blackhole: avoid checking the state twice Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-10-2b70ab1cee79@kernel.org> References: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-0-2b70ab1cee79@kernel.org> In-Reply-To: <20250221-net-next-mptcp-pm-misc-cleanup-3-v1-0-2b70ab1cee79@kernel.org> To: mptcp@lists.linux.dev, Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2258; i=matttbe@kernel.org; h=from:subject:message-id; bh=Wom1Z6Yf2iTnch8UEgQeD2janPDVRVMz/fyDLs5de9w=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBnuJ9HgoWs/Elej6GEIci+QQQIkFOFv8zV3mfAb Do2FbfkzCOJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZ7ifRwAKCRD2t4JPQmmg c7MhEACYVK1iUWhT53jM4LB417iKAbXrfjFNNb2JFET8a4PSK9fs4TBD+tIOzJbbCG0aDoj/6Th xWt3rzxPgiLe/r18Jad51x+gS0y90kmjVD8YV/YzACS3h6c7OsMH0C6UyEzWFBFR9DZ0biFUdSB nViI+AlfoJ9t/aCL6cVHvsdUm2r+/B28heR2VHot7m+56CiMadgxmLbmBeRrva+qa7WlEy987we 49I/C4zd4umS1+93fH9nInTokAsIC3t9GmO/ipT6g6OSYtaoF/XWie9+jSLSQBf2cdsJ0uM0cOV 7rxPvEfBlxCdX2vniOft69WFpMdmt3CEWOyDlyyKk6nu9jA0TAhx1cSBYI95UxwyS/f4onIvMHw yTQ1/WQ7Uw2rxR2WGqnKqriq17B4ZI1TmQnkL4D8CKM0egodgMoGtkGgTORcUsAtIiS7BLxhNCX EDeaXDI2EMnUlmTKioeANfDE2hIkPIt+tp2+/ixplrRuIPuXfJOAmSBWQf6sx3HdhEOsmqS/g9T Uf6jfyo3Qby7p8AkwcUfOCgugKbHQeUsZSeXir6YVYisQ8tAAsCAOdmso/XLkRa+FdhcFxFWr2A 0vo6ImkjP9qj43KtE5og7+rjf5SAnnTjWRjQN9/c8uRyzMq7l7Pjr2LVImADND0oH6m8cjjcjjU JgRU7GD6zSSEHWA== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 X-Patchwork-Delegate: kuba@kernel.org A small cleanup, reordering the conditions to avoid checking things twice. The code here is called in case of timeout on a TCP connection, before triggering a retransmission. But it only acts on SYN + MPC packets. So the conditions can be re-order to exit early in case of non-MPTCP SYN + MPC. This also reduce the indentation levels. Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/ctrl.c | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/net/mptcp/ctrl.c b/net/mptcp/ctrl.c index 2dd81e6c26bdb5220abed68e26d70d2dc3ab14fb..be6c0237e10bfd7520edd3c57ec43ce4377b97d5 100644 --- a/net/mptcp/ctrl.c +++ b/net/mptcp/ctrl.c @@ -401,26 +401,30 @@ void mptcp_active_enable(struct sock *sk) void mptcp_active_detect_blackhole(struct sock *ssk, bool expired) { struct mptcp_subflow_context *subflow; + u8 timeouts, to_max; + struct net *net; - if (!sk_is_mptcp(ssk)) + /* Only check MPTCP SYN ... */ + if (likely(!sk_is_mptcp(ssk) || ssk->sk_state != TCP_SYN_SENT)) return; subflow = mptcp_subflow_ctx(ssk); - if (subflow->request_mptcp && ssk->sk_state == TCP_SYN_SENT) { - struct net *net = sock_net(ssk); - u8 timeouts, to_max; - - timeouts = inet_csk(ssk)->icsk_retransmits; - to_max = mptcp_get_pernet(net)->syn_retrans_before_tcp_fallback; - - if (timeouts == to_max || (timeouts < to_max && expired)) { - MPTCP_INC_STATS(net, MPTCP_MIB_MPCAPABLEACTIVEDROP); - subflow->mpc_drop = 1; - mptcp_subflow_early_fallback(mptcp_sk(subflow->conn), subflow); - } - } else if (ssk->sk_state == TCP_SYN_SENT) { + /* ... + MP_CAPABLE */ + if (!subflow->request_mptcp) { + /* Mark as blackhole iif the 1st non-MPTCP SYN is accepted */ subflow->mpc_drop = 0; + return; + } + + net = sock_net(ssk); + timeouts = inet_csk(ssk)->icsk_retransmits; + to_max = mptcp_get_pernet(net)->syn_retrans_before_tcp_fallback; + + if (timeouts == to_max || (timeouts < to_max && expired)) { + MPTCP_INC_STATS(net, MPTCP_MIB_MPCAPABLEACTIVEDROP); + subflow->mpc_drop = 1; + mptcp_subflow_early_fallback(mptcp_sk(subflow->conn), subflow); } }