]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
mptcp: sockopt: check timestamping ret value
authorMatthieu Baerts (NGI0) <matttbe@kernel.org>
Tue, 2 Jun 2026 12:14:14 +0000 (22:14 +1000)
committerJakub Kicinski <kuba@kernel.org>
Thu, 4 Jun 2026 02:04:26 +0000 (19:04 -0700)
sock_set_timestamping() can fail for different reasons. The returned
value should then be checked.

If sock_set_timestamping() fails for at least one subflow, the first
error is now reported to the userspace, similar to what is done with
other socket options.

Fixes: 9061f24bf82e ("mptcp: sockopt: propagate timestamp request to subflows")
Cc: stable@vger.kernel.org
Reported-by: Willem de Bruijn <willemdebruijn.kernel@gmail.com>
Closes: https://lore.kernel.org/willemdebruijn.kernel.178a41a53d041@gmail.com
Reviewed-by: Mat Martineau <martineau@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20260602-net-mptcp-misc-fixes-7-1-rc7-v2-7-856831229976@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/mptcp/sockopt.c

index 87b5796d0135342e764341256153c118e598eb65..91aa57f1d0fd9dcfbd23f572963a16e6460cb096 100644 (file)
@@ -241,15 +241,19 @@ static int mptcp_setsockopt_sol_socket_timestamping(struct mptcp_sock *msk,
 
        mptcp_for_each_subflow(msk, subflow) {
                struct sock *ssk = mptcp_subflow_tcp_sock(subflow);
+               int err;
 
                lock_sock(ssk);
-               sock_set_timestamping(ssk, optname, timestamping);
+               err = sock_set_timestamping(ssk, optname, timestamping);
                release_sock(ssk);
+
+               if (err < 0 && ret == 0)
+                       ret = err;
        }
 
        release_sock(sk);
 
-       return 0;
+       return ret;
 }
 
 static int mptcp_setsockopt_sol_socket_linger(struct mptcp_sock *msk, sockptr_t optval,