From nobody Mon Jun 8 06:38:57 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 3FBBA388378 for ; Mon, 1 Jun 2026 08:27:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780302465; cv=none; b=TLPLzjkCo1fRREnFWK/qWMXlPDLoWtNi0emcyhO80Zd1YfQIIonub8xa+RMP9D4vbJzP6gOBUMG2/ngwUwHxhCu33zLS98rhZ+JEtHe+2kDMW7uDWNQhrM7ytxmw460J1W/QNi5+Bfu0PEOPWpAVbs7Uoj10/a9RYtrdEkwNbjw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780302465; c=relaxed/simple; bh=qh7qj3RAs0JwBQ4nLmQxGyzSwP4FNFD5VJoKwvOFlkA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DF8vlrWqvYWuNDqphf+l3oa0Bs8nPFFUQ3rW2u7FFrbc0xigpV0AobEeBrF6p5n04ifgAiWKuNdEJxy7L1xy6H+0F0LrfXQ8XkDALlghmrhxUan3OLijAypxartFVYhVw6X6+Lapw0an03lDGRPrvSza1k2bIFm8zQwBNl1Fbiw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Sj7WF7/L; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Sj7WF7/L" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 509A81F00899; Mon, 1 Jun 2026 08:27:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1780302464; bh=U26wbtZRhO6FRZYic6xCfl4ZIiTcaekd9VPCV7+Ruag=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=Sj7WF7/LrKponiPQvP/+aBLgs7hCenr8pluhXKzXaQlankZFNAN5Z8Vq3426YcaN7 m/GAGDVTH0PeX/L9ttDtSIeFlA/u4kiMuD6Z+y6e2rRs+kUyylM7FskT4gAhYCe8sT JUMVXwVVWD2IHirQL86/v2m4lPVe5g6bMfF1gQmQ3rBvscf883oEtOqWOsX+TohKbu 59aQBjNSProyzOTzdf9DfWNZRB2BNMP/oLm+E4V8MKkeEbZfAYzn0rtJE4KkcISkuB 3/R9rndlgawO+v6w6tD8XkctJoAa5XghUlUjaRQQu3VpUFTtFfdB5bRpcJ91rp14Or E5nYutgvkQJzA== From: "Matthieu Baerts (NGI0)" Date: Mon, 01 Jun 2026 18:27:28 +1000 Subject: [PATCH mptcp-next 1/4] Squash to: "mptcp: introduce add_addr_v6_port_drop_ts sysctl knob" 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: <20260601-mptcp-add-addr6-port-ts-fixes-v2-v1-1-d7c842e80446@kernel.org> References: <20260601-mptcp-add-addr6-port-ts-fixes-v2-v1-0-d7c842e80446@kernel.org> In-Reply-To: <20260601-mptcp-add-addr6-port-ts-fixes-v2-v1-0-d7c842e80446@kernel.org> To: MPTCP Linux Cc: "Matthieu Baerts (NGI0)" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=830; i=matttbe@kernel.org; h=from:subject:message-id; bh=qh7qj3RAs0JwBQ4nLmQxGyzSwP4FNFD5VJoKwvOFlkA=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBqHUJ9hRqFeQaWHw9uBKEKSF4ez20ee9T2CkYPx JPIJl4xvxmJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCah1CfQAKCRD2t4JPQmmg c+VfEADEk3Riy/63N23rI9W8ujnVAmWC8DOqnTve1nbO3vt8Pd7U4AUrf01zsWjwznNLRRf35Tt GEOIvJPY/IKlXVuzsDAW3ecVyeWaYJGjzdewnB/6zYsZsgJTJfWqXx2MG7KS4RvzA8jrUMAhEft zWviDzOfOSgh8sFAGfkzWOtIYD2DGSoanrpDjAEgjrbXNjN3j/XiZ9dAEHRBmmgtqWe97NEyaOi QmR+HTihk/kTmY9JTmjUgcgv6aatZhm62WVnNTPKfGAviQa91OacxFCbCHXSCAJiKX0YcNgTMnV 602bdcIx9CztKl18AqVGetgvfISUjkkrOBy7TY0SfsZrV4DzhhWgPKSF35iZXB5TK6hY3n10eAY jlAdrw6/18TG2hF0xTcq8aX0MQv+YuC+RtSxtezImggjKHCp2iGp6/faxTCNRdcD5EbnBhi5Oc/ rU8kWZ0C3vsI/MUaTB2s9pT5EF16WXlfE2MuQf6pstyYJtdiVyApcVQM+5jjpnqc6S606NvAQAv YPMXr3nRCfWxl1X+L64zkZ0x3fLtADIn+AkMpzmeudvSjUwcYD4/jFsjbtA8l+AOAr/CPkwWunI 5WYdOgZ9O0hB8cCFYww1BKQEauMR1GV3n37TJWWTrZ6JaMIztSzoie30xxJCPHOqt7b+cff2Vjb yd5JJugNs5Bnlow== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 Use READ_ONCE() over sysctls. This will avoid future patches from KCSAN bots. Link: https://lore.kernel.org/CANn89iL=3Dos-60kDKqMDdyiXuPF5CG=3DeejS0vmthw= pDGXz_Bp8A@mail.gmail.com Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/ctrl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/mptcp/ctrl.c b/net/mptcp/ctrl.c index c94a192f4118..63c5747f0f63 100644 --- a/net/mptcp/ctrl.c +++ b/net/mptcp/ctrl.c @@ -97,7 +97,7 @@ const char *mptcp_get_scheduler(const struct net *net) =20 unsigned int mptcp_add_addr_v6_port_drop_ts(const struct net *net) { - return mptcp_get_pernet(net)->add_addr_v6_port_drop_ts; + return READ_ONCE(mptcp_get_pernet(net)->add_addr_v6_port_drop_ts); } =20 static void mptcp_pernet_set_defaults(struct mptcp_pernet *pernet) --=20 2.53.0 From nobody Mon Jun 8 06:38:57 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 ADA5333AD8B for ; Mon, 1 Jun 2026 08:27:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780302466; cv=none; b=biQiHQjnmaQ79NOdsHsIQ6EeVyVWijoCiISGTylYJcP88YGkv394G3QjQJbo3pSAP5Ts3HhJDEzXGK7q/g6WscnJpOR4CFwHAy6Raw70bq1YCU5rVTadt+j1AVwaaEWjqDfWtNLZhkclYJm6TREc5toONqayW3oHPaAehtHjKyg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780302466; c=relaxed/simple; bh=4JbiyHe6rD7jlErnzVitBvCFUyGWix//x7fccH1MyEc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=kUBwJ1kPNNceKO1+piLEOxY2qBY4s5Z5e5+YMbwBR37jDNkPSLL2qml9iosh5/KZHrQGSpPFjZ+Ysv86gvLcNjxZ3yTsIy4Zh/kFjhWlbYyG35Sl3ZEsPXa64kTNvVeAmvxdMTDkWJfqKgHvIauwOnxSfxxybCM/so7ZslBxmbs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=QizAOg8A; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="QizAOg8A" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BEB0D1F00893; Mon, 1 Jun 2026 08:27:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1780302465; bh=rZpbayGfEtgKMVwRB7LuynGVhxt4/xtfCv0TCkDrmvg=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=QizAOg8AY3VMHgs3xfuOhQMTY2CS1T+slqfNL7a9VwD5PbafqiguySevY2MDRtnug VVKpzU5b2vSlbDU2EKe3o+y43mUEt3yBVgui5bMSL+u8K6Lbbn+kzeZKhKiI20FNbR SxcZePNZfU0daXzgZPeuarCRN0jx7G/4BzRpdhSearh8p9GNWAAskmYIMeYVVS/8h3 kjHlaocMcyuWuWEZMG5mzTBaXsy1l+nAAgmp6Jot2yWkYnacuyH5NFlHdjGH+8ZWcl DwtsiqMo+kpQYMw7X4yJ6SzqMfqXcRx3XtLP2l/El4FKF3JEcVvRFP+yS5VzxLOmCX Wk5t2UnUvPdjg== From: "Matthieu Baerts (NGI0)" Date: Mon, 01 Jun 2026 18:27:29 +1000 Subject: [PATCH mptcp-next 2/4] Squash to "tcp: allow mptcp to drop TS for some packets" 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: <20260601-mptcp-add-addr6-port-ts-fixes-v2-v1-2-d7c842e80446@kernel.org> References: <20260601-mptcp-add-addr6-port-ts-fixes-v2-v1-0-d7c842e80446@kernel.org> In-Reply-To: <20260601-mptcp-add-addr6-port-ts-fixes-v2-v1-0-d7c842e80446@kernel.org> To: MPTCP Linux Cc: "Matthieu Baerts (NGI0)" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4225; i=matttbe@kernel.org; h=from:subject:message-id; bh=4JbiyHe6rD7jlErnzVitBvCFUyGWix//x7fccH1MyEc=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBqHUJ9FJeaj4+nusIpBvXyePpl2IxhSA9bHXFND WR2rbWaSiCJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCah1CfQAKCRD2t4JPQmmg c/8GEACv+IDmHBJsJNMzECL5pZ/oOHF5SH1U93Quum1u0N+tzhT0/gZntDJhsp0GBGlfQ0JGXdW DLxwFGVVuwSn6EIhOWhkasPrGRgpz1WlCtErrAI304/tZ7qt63lf0uVkR/ABrFZeE1tQLCcRwUU hMKIZaulrED1Xl8MKlxR2oNZ1y2bCsfY6toNIE6vjm+YJHidGbCt5Ooa7ARadAGdIwv6pbuZ0bC vhEwbv+rI6+bZ+JFL/tq1smUYVO9K/kZMHnTv1oEjy6LH4Uj/n+rmdCnh9FZE02rYb7V9NdV4Ly dEynz5/XszzCiRNStwlwTVTcFogb6c3wO81BnlxzPMn1UnFcoAV0wbMXRnU3H8zr/sMrjhzHMpB NzwP0cnJwZUcgY7NibVDjiQ3dOCjJnMqcztzoeV+7RY/m3JBFT63itSyoZvUgAFSks8e/LDhEL5 i9ra+JtbotPkbMIoY4Fu6fgC8PV/OfQvQSDLRUznzaC2zfS9kQTYmHmMXbDPOqS7T4/L5NeVMXN nnPrBDcV+Me9uChuE5anmBfzHpYaIUMLqK2kQjJdSdwQLEE0k61ygCBrlF0eteRcm7KUKeEU1iH +aXIonCxGS1YVDebHAxVWIlE77OAOsUHbZ6EMtyS0o6njgWruzMqu4t+HLPUHseQXHtYoFHSNOb x0LBiRqpaeXi7Uw== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 Not to pass another local variables' addresses which forces the compiler to use a stack canary in this hot function, even for non-MPTCP flows. See Eric's comment. Notes: - Using a free unused bit in struct mptcp_out_options. A bit "hackish", but I didn't see another way to avoid passing a local variable address. - Still adding a new parameter to mptcp_established_options, clearer. - IS_ENABLED(CONFIG_MPTCP) is needed to avoid compilation errors when reading/setting opts->mptcp.drop_ts. Link: https://lore.kernel.org/CANn89iLdwhhwLyO6zRjWMEY3t9g60ZE8ZhOVx33ucg_u= RETbmQ@mail.gmail.com Signed-off-by: Matthieu Baerts (NGI0) --- include/net/mptcp.h | 7 ++++--- net/ipv4/tcp_output.c | 10 +++++++--- net/mptcp/options.c | 3 +-- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/include/net/mptcp.h b/include/net/mptcp.h index d1227b71b217..f6074eeff8c3 100644 --- a/include/net/mptcp.h +++ b/include/net/mptcp.h @@ -68,7 +68,8 @@ struct mptcp_out_options { u8 reset_reason:4, reset_transient:1, csum_reqd:1, - allow_join_id0:1; + allow_join_id0:1, + drop_ts:1; union { struct { u64 sndr_key; @@ -156,7 +157,7 @@ bool mptcp_synack_options(const struct request_sock *re= q, unsigned int *size, struct mptcp_out_options *opts); bool mptcp_established_options(struct sock *sk, struct sk_buff *skb, unsigned int *size, unsigned int remaining, - bool *drop_ts, struct mptcp_out_options *opts); + bool has_ts, struct mptcp_out_options *opts); bool mptcp_incoming_options(struct sock *sk, struct sk_buff *skb); =20 void mptcp_write_options(struct tcphdr *th, __be32 *ptr, struct tcp_sock *= tp, @@ -275,7 +276,7 @@ static inline bool mptcp_established_options(struct soc= k *sk, struct sk_buff *skb, unsigned int *size, unsigned int remaining, - bool *drop_ts, + bool has_ts, struct mptcp_out_options *opts) { return false; diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index 53ee4c8f5f8c..dbeb02f8481b 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c @@ -1173,6 +1173,7 @@ static unsigned int tcp_established_options(struct so= ck *sk, struct sk_buff *skb size +=3D TCPOLEN_TSTAMP_ALIGNED; } =20 +#if IS_ENABLED(CONFIG_MPTCP) /* MPTCP options have precedence over SACK for the limited TCP * option space because a MPTCP connection would be forced to * fall back to regular TCP if a required multipath option is @@ -1181,18 +1182,21 @@ static unsigned int tcp_established_options(struct = sock *sk, struct sk_buff *skb */ if (sk_is_mptcp(sk)) { unsigned int remaining =3D MAX_TCP_OPTION_SPACE - size; - bool drop_ts =3D opts->options & OPTION_TS; + bool has_ts =3D opts->options & OPTION_TS; unsigned int opt_size =3D 0; =20 + opts->mptcp.drop_ts =3D 0; + if (mptcp_established_options(sk, skb, &opt_size, remaining, - &drop_ts, &opts->mptcp)) { + has_ts, &opts->mptcp)) { opts->options |=3D OPTION_MPTCP; size +=3D opt_size; =20 - if (drop_ts) + if (opts->mptcp.drop_ts) opts->options &=3D ~OPTION_TS; } } +#endif =20 eff_sacks =3D tp->rx_opt.num_sacks + tp->rx_opt.dsack; if (unlikely(eff_sacks)) { diff --git a/net/mptcp/options.c b/net/mptcp/options.c index 533226205d78..a7785453b5e0 100644 --- a/net/mptcp/options.c +++ b/net/mptcp/options.c @@ -823,7 +823,7 @@ static bool mptcp_established_options_mp_fail(struct so= ck *sk, int *size, =20 bool mptcp_established_options(struct sock *sk, struct sk_buff *skb, unsigned int *size, unsigned int remaining, - bool *drop_ts, struct mptcp_out_options *opts) + bool has_ts, struct mptcp_out_options *opts) { struct mptcp_subflow_context *subflow =3D mptcp_subflow_ctx(sk); struct mptcp_sock *msk =3D mptcp_sk(subflow->conn); @@ -833,7 +833,6 @@ bool mptcp_established_options(struct sock *sk, struct = sk_buff *skb, int opt_size =3D 0; =20 opts->suboptions =3D 0; - *drop_ts =3D false; =20 /* Force later mptcp_write_options(), but do not use any actual * option space. --=20 2.53.0 From nobody Mon Jun 8 06:38:57 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 4F693386C1B for ; Mon, 1 Jun 2026 08:27:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780302468; cv=none; b=YwLyEvWUKCY1YhbTXY2Ww/WWBR+7cW8B6VnmEnrOZiqR7K44UOAlgSnVd67x8B3ZCwTQVDLNHbUxWaXlFyAonkCQGVZ5cL2Vm9FLdX4HNTVxmLqGUONAD/gWUQnzs8oBjpYL3vib07mIjIuLyF83C+vwXkK48o7hEgxXKIHiBT8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780302468; c=relaxed/simple; bh=i9SUWIdxkJAkA4RLbXnh9I2y+GZcWQFWl8191QvaDug=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=n3JRXUj0pUtx8nzc9VsnRxpVRGnRzK3h8yeQMEm89oHgCP0/XA+vvjljpv5bHowaYdUdf8Uexky1DwcfQQHNY15bkrH56MuYfhM/aWqMZ15SMV3TwkN8kTgwpNPFmttiVIVKO+RhYouBN67vXgRVwhhXe+KISIZc0xnHj7vMVB4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=MF4dMVKw; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="MF4dMVKw" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 322441F00899; Mon, 1 Jun 2026 08:27:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1780302466; bh=FVED1GZjFzhzqktIypPhI/VqWK8GJKKIdsIb+CD9G2k=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=MF4dMVKwS8zANOAsRYheC8BFVQfJ1gpeF66jmMy+gcimQRakZ18f7MKeGlCnG0rZ5 woojZx5lr8UuiYQhDGTA9Sm6F+lPJEK51eO7YHigkSH7boxfgyTab20C4Uq7zaQ4X9 M/3sH4VY40fdptKiEBWsphNYB0XelqlhdN2CNJDM3WrMswap9zZ7R6U9B/QtSpl0S2 HIMOBjGacTfoqjfPpTdZtoASMkpyTd0DNY0db2pjvcMcm7BCK0NW0mevjK6AHA+Rq+ UF3kRRBlR7w0ofC9Bexzag1fQL0YrxKXUi3BT4VEmdfp7VPTUN41AGaeYI2XigV25k Yla9dIhiFthNg== From: "Matthieu Baerts (NGI0)" Date: Mon, 01 Jun 2026 18:27:30 +1000 Subject: [PATCH mptcp-next 3/4] Squash to "mptcp: pm: drop TCP TS with ADD_ADDRv6 + port" 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: <20260601-mptcp-add-addr6-port-ts-fixes-v2-v1-3-d7c842e80446@kernel.org> References: <20260601-mptcp-add-addr6-port-ts-fixes-v2-v1-0-d7c842e80446@kernel.org> In-Reply-To: <20260601-mptcp-add-addr6-port-ts-fixes-v2-v1-0-d7c842e80446@kernel.org> To: MPTCP Linux Cc: "Matthieu Baerts (NGI0)" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2606; i=matttbe@kernel.org; h=from:subject:message-id; bh=i9SUWIdxkJAkA4RLbXnh9I2y+GZcWQFWl8191QvaDug=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBqHUJ9T6ESLc/YPkLPjqnCrdbgrT1pSOGGEOp29 knKJwXusHmJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCah1CfQAKCRD2t4JPQmmg cx8WD/0UCkooHXMUcxUIr5adUqzV/t+RVL7z21eo87QOSCHnsS3yzagBtDOuz19h9/CXKmQYCSb 8W86fJJLKM72ITGGQFeHct1q+YDKCxYPtK5UuzWjoJAbV/+ZbkWU21Ndy2ctUMhQItgcLEtc0hG AeG4b6SaXULIWV6CgmNpMiVFOjs1IulvTC4iHcL5DNcCOwPDCGsoMGm03feLPF5IDkMN9TllxHw NyG3vJyWI4IiPErUdc9jWuiq10VZakY2PBSC1EdgDi96AoJuuxijOlkDUZHjTe4jCW8HZzaOCr0 0HkrQD1+MPVrotgFw3R1HBkledpm//ejFv3eV/3SXKNfFYgQy5LT4zl4BKvF5D0AHlP8Csy+irN hoGU2m1lKHyXVcN+0mR4s37Pc9izTR76NwEi1sOmqcdIaoKftm/j/dKMRs7jMgpIvsu/EJKHPtm VWGfwIVCoLDVayX5gV3kFa76259UtmQ45fIjG2psb7t6+f6OpoXy29M6Q7/Q7zcoXJ0cW7Sb3hs jMcLrrFbvGfqvOEGgKSETlwufh004B/pNvK1xuz4kJk+D94ajAidG1d2jOu1t0VxI11JDjaJRdk tM4+gNxC2rx6AOrIzA2OdEHiua2wCGeO0tr0G6DDd8cQ6N6ygHNz7qMpX0gpyZifPCU4UDUgFjm 3/2HffRr26hSJCQ== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 Follow-up needed after having applied the previous commit. See Eric's comment. Link: https://lore.kernel.org/CANn89iLdwhhwLyO6zRjWMEY3t9g60ZE8ZhOVx33ucg_u= RETbmQ@mail.gmail.com Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/options.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/net/mptcp/options.c b/net/mptcp/options.c index a7785453b5e0..1845cf5bb377 100644 --- a/net/mptcp/options.c +++ b/net/mptcp/options.c @@ -659,13 +659,14 @@ static u64 add_addr_generate_hmac(u64 key1, u64 key2, static bool mptcp_established_options_add_addr(struct sock *sk, struct sk_buff *skb, int *size, unsigned int remaining, - bool *drop_ts, + bool has_ts, struct mptcp_out_options *opts) { struct mptcp_subflow_context *subflow =3D mptcp_subflow_ctx(sk); struct mptcp_sock *msk =3D mptcp_sk(subflow->conn); bool drop_other_suboptions =3D false; struct mptcp_addr_info addr; + bool drop_ts =3D has_ts; bool echo; =20 /* add addr will strip the existing options, be sure to avoid breaking @@ -674,7 +675,7 @@ static bool mptcp_established_options_add_addr(struct s= ock *sk, if (!mptcp_pm_should_add_signal(msk) || (opts->suboptions & (OPTION_MPTCP_MPJ_ACK | OPTION_MPTCP_MPC_ACK)) || !mptcp_pm_add_addr_signal(msk, skb, size, remaining, &addr, &echo, - &drop_other_suboptions, drop_ts)) + &drop_other_suboptions, &drop_ts)) return false; =20 /* @@ -695,6 +696,7 @@ static bool mptcp_established_options_add_addr(struct s= ock *sk, */ opts->ahmac =3D 0; } + opts->drop_ts =3D drop_ts; opts->addr =3D addr; opts->suboptions |=3D OPTION_MPTCP_ADD_ADDR; if (!echo) { @@ -827,7 +829,6 @@ bool mptcp_established_options(struct sock *sk, struct = sk_buff *skb, { struct mptcp_subflow_context *subflow =3D mptcp_subflow_ctx(sk); struct mptcp_sock *msk =3D mptcp_sk(subflow->conn); - bool add_addr_drop_ts =3D *drop_ts; bool snd_data_fin; bool ret =3D false; int opt_size =3D 0; @@ -878,11 +879,10 @@ bool mptcp_established_options(struct sock *sk, struc= t sk_buff *skb, *size +=3D opt_size; remaining -=3D opt_size; if (mptcp_established_options_add_addr(sk, skb, &opt_size, remaining, - &add_addr_drop_ts, opts)) { + has_ts, opts)) { *size +=3D opt_size; remaining -=3D opt_size; ret =3D true; - *drop_ts =3D add_addr_drop_ts; } else if (mptcp_established_options_rm_addr(sk, &opt_size, remaining, op= ts)) { *size +=3D opt_size; remaining -=3D opt_size; --=20 2.53.0 From nobody Mon Jun 8 06:38:57 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 83E1A386C1B for ; Mon, 1 Jun 2026 08:27:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780302469; cv=none; b=EBlwF+aj4/jMZfYVGJqmlitNvELek8fED/CvklXfC5HhvQRJ05D7YjiSGGuwr9Zubb2fttYhI1QG7IUpELgyNkzvvx35iPX9bAi5yY4m1IQFqcDMU6kt9/b14vFFYmcbP2GKmQ/j5/o9aRDDK5TboXPp83jgdUw8eKoWGcB0+ac= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780302469; c=relaxed/simple; bh=DvwRIfUN7YRZ5k5EVdGbqGg+rsg1sk3AYFpf1i2tPKU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=e2raOPptJ0VcnJBg6vDuq1XL1BtDoTXqxdAVnuK8Ut5AfH+fg/bO7tVwGDCKcZseaJeJPxYGHmLxkDY5dhWrNoSgJTqAV2Cxhvs2k8kCov8lPifmYuLFoJDEEmJTl4mECqt3kLzf4GW7XI68fB+0qUzGg50JbhwqMcCSzwG7qfQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SIPytqUG; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="SIPytqUG" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7B4CF1F00893; Mon, 1 Jun 2026 08:27:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1780302468; bh=5LUPFX4ujMQjL6zP3fvoKqQlqRl7A0D/ikfh0X3vUFg=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=SIPytqUGzLjpJQOLAITGwuAjUtw7UF3yHhNobfFRji3pHI49YlH8Y/M2yPttQC2LD cdWjU4TQc+mpbQ6zOFuVubc+EiIbZ0X60LHzIU/PhodLN2/u8q8YHndYCz8pS+5V3J QVAfvCcamwlQnqMFSjUeu+a2zpK2Elch/j1WL9kQxuMHBOnfFQR7KwSHDuYkz9eQdA sbj/1OcpyYsQ9rxHeXEVg9WlQfqqfX3xd+aREIWXomtYVt0wtaj2GcuAvHomqdHvSK Wlgk9uA3hGXbI5rKEhXNv1kAXM7AoKm74J4lTQlaYOS5zw8Td19xIXXDjlflyisZQ7 oPHI7Eg1Vd6fQ== From: "Matthieu Baerts (NGI0)" Date: Mon, 01 Jun 2026 18:27:31 +1000 Subject: [PATCH mptcp-next 4/4] mptcp: use READ_ONCE() over sysctls 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: <20260601-mptcp-add-addr6-port-ts-fixes-v2-v1-4-d7c842e80446@kernel.org> References: <20260601-mptcp-add-addr6-port-ts-fixes-v2-v1-0-d7c842e80446@kernel.org> In-Reply-To: <20260601-mptcp-add-addr6-port-ts-fixes-v2-v1-0-d7c842e80446@kernel.org> To: MPTCP Linux Cc: "Matthieu Baerts (NGI0)" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2738; i=matttbe@kernel.org; h=from:subject:message-id; bh=DvwRIfUN7YRZ5k5EVdGbqGg+rsg1sk3AYFpf1i2tPKU=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBqHUJ9cX+s7BAZ+0fpAbLfrk6vpIOQKROslPtJ0 XCgyCYxbnSJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCah1CfQAKCRD2t4JPQmmg c1ndEACyQssQHFT1lnOuyAZ0WTXZsUgWDTkZnWOkpnyZ/2D3wU524eVT381gBETbOoh/nGsYQqz bCoOY7kPC1T95RyWyornUfGmWXE9s0vGKfseZ2UMn0j5FrsYLEAxMNIf9u28pon4B9YaqMlyuLl /PmO4kWNY2PIR4nITwjJ2yOaGB5/ttHdo85jotYhrlU1n20hsGUIMNEQaUHx1l7pQjC/SsTUFXd nOJJCwFgWxxhBdyByTteIeI57f2ZUB0oR2gF5JW0T3blVsEmo0tzXv7L7uAPLv27L1u/QI9SIKA QKEzo4g9aVFAXOk3cfsvG4PwSstovoPEBYD0oAiUyP7K5LsRNjygi7AU1b5q8qcIkZDCTmn4D1P 5HfTM987COvubbsCO5YAmn/dfbHSB45L4v7tDJAlgRKWwqeT/sV6+bOyams0TVEaJc7nw/41346 aCyO1dfJHDb48ltP4rYkzqH1bhIcUuPJuT666QRn/pp0YfyYVhu7HvTZhh61teUOfH7XLjTqf4N zfiH/WTsLrmwkq4PsG9Z1delUbgBUEheRoFzW6hs547xLgm2jg8xtOARTJ443GRwtcASCFez3fN dsMq7lg0RWMI5QqZkvixXjM9cMQMfLXxgxBzDd9UXDntVjGM/M7cPrnCqy6my3btXHJCT+91DKm BGoPXRQ1M8LCoNg== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 To avoid KCSAN issues. This patch is in theory for -net, and will need to be split in multiple patches, with different Fixes tags. But I prefer to wait for Eric's patches, as I noticed he already started to modify mptcp_is_enabled: https://lore.kernel.org/CANn89iLdwhhwLyO6zRjWMEY3t9g60ZE8ZhOVx33ucg_uRETb= mQ@mail.gmail.com Still, keeping this patch in this series, not to forget about it. Reported-by: Eric Dumazet Closes: https://lore.kernel.org/CANn89iL=3Dos-60kDKqMDdyiXuPF5CG=3DeejS0vmt= hwpDGXz_Bp8A@mail.gmail.com Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/ctrl.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/net/mptcp/ctrl.c b/net/mptcp/ctrl.c index 63c5747f0f63..1dee42601700 100644 --- a/net/mptcp/ctrl.c +++ b/net/mptcp/ctrl.c @@ -50,39 +50,39 @@ static struct mptcp_pernet *mptcp_get_pernet(const stru= ct net *net) =20 int mptcp_is_enabled(const struct net *net) { - return mptcp_get_pernet(net)->mptcp_enabled; + return READ_ONCE(mptcp_get_pernet(net)->mptcp_enabled); } =20 unsigned int mptcp_get_add_addr_timeout(const struct net *net) { - return mptcp_get_pernet(net)->add_addr_timeout; + return READ_ONCE(mptcp_get_pernet(net)->add_addr_timeout); } =20 int mptcp_is_checksum_enabled(const struct net *net) { - return mptcp_get_pernet(net)->checksum_enabled; + return READ_ONCE(mptcp_get_pernet(net)->checksum_enabled); } =20 int mptcp_allow_join_id0(const struct net *net) { - return mptcp_get_pernet(net)->allow_join_initial_addr_port; + return READ_ONCE(mptcp_get_pernet(net)->allow_join_initial_addr_port); } =20 unsigned int mptcp_stale_loss_cnt(const struct net *net) { - return mptcp_get_pernet(net)->stale_loss_cnt; + return READ_ONCE(mptcp_get_pernet(net)->stale_loss_cnt); } =20 unsigned int mptcp_close_timeout(const struct sock *sk) { if (sock_flag(sk, SOCK_DEAD)) return TCP_TIMEWAIT_LEN; - return mptcp_get_pernet(sock_net(sk))->close_timeout; + return READ_ONCE(mptcp_get_pernet(sock_net(sk))->close_timeout); } =20 int mptcp_get_pm_type(const struct net *net) { - return mptcp_get_pernet(net)->pm_type; + return READ_ONCE(mptcp_get_pernet(net)->pm_type); } =20 const char *mptcp_get_path_manager(const struct net *net) @@ -551,7 +551,7 @@ void mptcp_active_detect_blackhole(struct sock *ssk, bo= ol expired) =20 net =3D sock_net(ssk); timeouts =3D inet_csk(ssk)->icsk_retransmits; - to_max =3D mptcp_get_pernet(net)->syn_retrans_before_tcp_fallback; + to_max =3D READ_ONCE(mptcp_get_pernet(net)->syn_retrans_before_tcp_fallba= ck); =20 if (timeouts =3D=3D to_max || (timeouts < to_max && expired)) { subflow->mpc_drop =3D 1; --=20 2.53.0