* FAILED: patch "[PATCH] mptcp: sockopt: fix getting IPV6_V6ONLY" failed to apply to 5.15-stable tree
@ 2025-04-17 10:31 gregkh
2025-04-18 10:23 ` [PATCH 5.15.y] mptcp: sockopt: fix getting IPV6_V6ONLY Matthieu Baerts (NGI0)
0 siblings, 1 reply; 3+ messages in thread
From: gregkh @ 2025-04-17 10:31 UTC (permalink / raw)
To: matttbe, horms, martineau, pabeni; +Cc: stable
The patch below does not apply to the 5.15-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable@vger.kernel.org>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.15.y
git checkout FETCH_HEAD
git cherry-pick -x 8c39633759885b6ff85f6d96cf445560e74df5e8
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<stable@vger.kernel.org>' --in-reply-to '2025041742-gurgle-parking-5fbb@gregkh' --subject-prefix 'PATCH 5.15.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 8c39633759885b6ff85f6d96cf445560e74df5e8 Mon Sep 17 00:00:00 2001
From: "Matthieu Baerts (NGI0)" <matttbe@kernel.org>
Date: Fri, 14 Mar 2025 21:11:32 +0100
Subject: [PATCH] mptcp: sockopt: fix getting IPV6_V6ONLY
When adding a socket option support in MPTCP, both the get and set parts
are supposed to be implemented.
IPV6_V6ONLY support for the setsockopt part has been added a while ago,
but it looks like the get part got forgotten. It should have been
present as a way to verify a setting has been set as expected, and not
to act differently from TCP or any other socket types.
Not supporting this getsockopt(IPV6_V6ONLY) blocks some apps which want
to check the default value, before doing extra actions. On Linux, the
default value is 0, but this can be changed with the net.ipv6.bindv6only
sysctl knob. On Windows, it is set to 1 by default. So supporting the
get part, like for all other socket options, is important.
Everything was in place to expose it, just the last step was missing.
Only new code is added to cover this specific getsockopt(), that seems
safe.
Fixes: c9b95a135987 ("mptcp: support IPV6_V6ONLY setsockopt")
Cc: stable@vger.kernel.org
Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/550
Reviewed-by: Mat Martineau <martineau@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250314-net-mptcp-fix-data-stream-corr-sockopt-v1-2-122dbb249db3@kernel.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
diff --git a/net/mptcp/sockopt.c b/net/mptcp/sockopt.c
index 505445a9598f..4b99eb796855 100644
--- a/net/mptcp/sockopt.c
+++ b/net/mptcp/sockopt.c
@@ -1430,6 +1430,20 @@ static int mptcp_getsockopt_v4(struct mptcp_sock *msk, int optname,
return -EOPNOTSUPP;
}
+static int mptcp_getsockopt_v6(struct mptcp_sock *msk, int optname,
+ char __user *optval, int __user *optlen)
+{
+ struct sock *sk = (void *)msk;
+
+ switch (optname) {
+ case IPV6_V6ONLY:
+ return mptcp_put_int_option(msk, optval, optlen,
+ sk->sk_ipv6only);
+ }
+
+ return -EOPNOTSUPP;
+}
+
static int mptcp_getsockopt_sol_mptcp(struct mptcp_sock *msk, int optname,
char __user *optval, int __user *optlen)
{
@@ -1469,6 +1483,8 @@ int mptcp_getsockopt(struct sock *sk, int level, int optname,
if (level == SOL_IP)
return mptcp_getsockopt_v4(msk, optname, optval, option);
+ if (level == SOL_IPV6)
+ return mptcp_getsockopt_v6(msk, optname, optval, option);
if (level == SOL_TCP)
return mptcp_getsockopt_sol_tcp(msk, optname, optval, option);
if (level == SOL_MPTCP)
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 5.15.y] mptcp: sockopt: fix getting IPV6_V6ONLY
2025-04-17 10:31 FAILED: patch "[PATCH] mptcp: sockopt: fix getting IPV6_V6ONLY" failed to apply to 5.15-stable tree gregkh
@ 2025-04-18 10:23 ` Matthieu Baerts (NGI0)
2025-04-19 11:47 ` Sasha Levin
0 siblings, 1 reply; 3+ messages in thread
From: Matthieu Baerts (NGI0) @ 2025-04-18 10:23 UTC (permalink / raw)
To: stable, gregkh
Cc: MPTCP Upstream, Matthieu Baerts (NGI0), Mat Martineau,
Simon Horman, Paolo Abeni
commit 8c39633759885b6ff85f6d96cf445560e74df5e8 upstream.
When adding a socket option support in MPTCP, both the get and set parts
are supposed to be implemented.
IPV6_V6ONLY support for the setsockopt part has been added a while ago,
but it looks like the get part got forgotten. It should have been
present as a way to verify a setting has been set as expected, and not
to act differently from TCP or any other socket types.
Not supporting this getsockopt(IPV6_V6ONLY) blocks some apps which want
to check the default value, before doing extra actions. On Linux, the
default value is 0, but this can be changed with the net.ipv6.bindv6only
sysctl knob. On Windows, it is set to 1 by default. So supporting the
get part, like for all other socket options, is important.
Everything was in place to expose it, just the last step was missing.
Only new code is added to cover this specific getsockopt(), that seems
safe.
Fixes: c9b95a135987 ("mptcp: support IPV6_V6ONLY setsockopt")
Cc: stable@vger.kernel.org
Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/550
Reviewed-by: Mat Martineau <martineau@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250314-net-mptcp-fix-data-stream-corr-sockopt-v1-2-122dbb249db3@kernel.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
[ Conflicts in sockopt.c in the context, because commit 3b1e21eb60e8
("mptcp: getsockopt: add support for IP_TOS") is not in this release.
The conflicts are in the context, the new helper can be added without
issue. It depends on mptcp_put_int_option() which has been added via
another backport, see commit 874aae15fbef ("mptcp: fix full TCP
keep-alive support"). ]
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
---
net/mptcp/sockopt.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/net/mptcp/sockopt.c b/net/mptcp/sockopt.c
index 93d2f028fa91..cd10f4a54de7 100644
--- a/net/mptcp/sockopt.c
+++ b/net/mptcp/sockopt.c
@@ -793,6 +793,20 @@ static int mptcp_getsockopt_sol_tcp(struct mptcp_sock *msk, int optname,
return -EOPNOTSUPP;
}
+static int mptcp_getsockopt_v6(struct mptcp_sock *msk, int optname,
+ char __user *optval, int __user *optlen)
+{
+ struct sock *sk = (void *)msk;
+
+ switch (optname) {
+ case IPV6_V6ONLY:
+ return mptcp_put_int_option(msk, optval, optlen,
+ sk->sk_ipv6only);
+ }
+
+ return -EOPNOTSUPP;
+}
+
int mptcp_getsockopt(struct sock *sk, int level, int optname,
char __user *optval, int __user *option)
{
@@ -813,6 +827,8 @@ int mptcp_getsockopt(struct sock *sk, int level, int optname,
if (ssk)
return tcp_getsockopt(ssk, level, optname, optval, option);
+ if (level == SOL_IPV6)
+ return mptcp_getsockopt_v6(msk, optname, optval, option);
if (level == SOL_TCP)
return mptcp_getsockopt_sol_tcp(msk, optname, optval, option);
return -EOPNOTSUPP;
--
2.48.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 5.15.y] mptcp: sockopt: fix getting IPV6_V6ONLY
2025-04-18 10:23 ` [PATCH 5.15.y] mptcp: sockopt: fix getting IPV6_V6ONLY Matthieu Baerts (NGI0)
@ 2025-04-19 11:47 ` Sasha Levin
0 siblings, 0 replies; 3+ messages in thread
From: Sasha Levin @ 2025-04-19 11:47 UTC (permalink / raw)
To: stable; +Cc: Matthieu Baerts (NGI0), Sasha Levin
[ Sasha's backport helper bot ]
Hi,
✅ All tests passed successfully. No issues detected.
No action required from the submitter.
The upstream commit SHA1 provided is correct: 8c39633759885b6ff85f6d96cf445560e74df5e8
Status in newer kernel trees:
6.14.y | Present (different SHA1: 233afced24eb)
6.13.y | Present (different SHA1: 41e890efe9aa)
6.12.y | Present (different SHA1: acc1f6a05ab2)
6.6.y | Present (different SHA1: 51893ff3b0f8)
6.1.y | Present (different SHA1: 0fb46064c253)
Note: The patch differs from the upstream commit:
---
1: 8c39633759885 ! 1: 21b4c2929499d mptcp: sockopt: fix getting IPV6_V6ONLY
@@ Metadata
## Commit message ##
mptcp: sockopt: fix getting IPV6_V6ONLY
+ commit 8c39633759885b6ff85f6d96cf445560e74df5e8 upstream.
+
When adding a socket option support in MPTCP, both the get and set parts
are supposed to be implemented.
@@ Commit message
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250314-net-mptcp-fix-data-stream-corr-sockopt-v1-2-122dbb249db3@kernel.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
+ [ Conflicts in sockopt.c in the context, because commit 3b1e21eb60e8
+ ("mptcp: getsockopt: add support for IP_TOS") is not in this release.
+ The conflicts are in the context, the new helper can be added without
+ issue. It depends on mptcp_put_int_option() which has been added via
+ another backport, see commit 874aae15fbef ("mptcp: fix full TCP
+ keep-alive support"). ]
+ Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
## net/mptcp/sockopt.c ##
-@@ net/mptcp/sockopt.c: static int mptcp_getsockopt_v4(struct mptcp_sock *msk, int optname,
+@@ net/mptcp/sockopt.c: static int mptcp_getsockopt_sol_tcp(struct mptcp_sock *msk, int optname,
return -EOPNOTSUPP;
}
@@ net/mptcp/sockopt.c: static int mptcp_getsockopt_v4(struct mptcp_sock *msk, int
+ return -EOPNOTSUPP;
+}
+
- static int mptcp_getsockopt_sol_mptcp(struct mptcp_sock *msk, int optname,
- char __user *optval, int __user *optlen)
+ int mptcp_getsockopt(struct sock *sk, int level, int optname,
+ char __user *optval, int __user *option)
{
@@ net/mptcp/sockopt.c: int mptcp_getsockopt(struct sock *sk, int level, int optname,
+ if (ssk)
+ return tcp_getsockopt(ssk, level, optname, optval, option);
- if (level == SOL_IP)
- return mptcp_getsockopt_v4(msk, optname, optval, option);
+ if (level == SOL_IPV6)
+ return mptcp_getsockopt_v6(msk, optname, optval, option);
if (level == SOL_TCP)
return mptcp_getsockopt_sol_tcp(msk, optname, optval, option);
- if (level == SOL_MPTCP)
+ return -EOPNOTSUPP;
---
Results of testing on various branches:
| Branch | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| stable/linux-5.15.y | Success | Success |
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-04-19 11:47 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-17 10:31 FAILED: patch "[PATCH] mptcp: sockopt: fix getting IPV6_V6ONLY" failed to apply to 5.15-stable tree gregkh
2025-04-18 10:23 ` [PATCH 5.15.y] mptcp: sockopt: fix getting IPV6_V6ONLY Matthieu Baerts (NGI0)
2025-04-19 11:47 ` Sasha Levin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox