]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
mptcp: sockopt: set timestamp flags on subflow socket, not msk
authorGang Yan <yangang@kylinos.cn>
Mon, 27 Apr 2026 19:54:33 +0000 (21:54 +0200)
committerJakub Kicinski <kuba@kernel.org>
Wed, 29 Apr 2026 01:36:27 +0000 (18:36 -0700)
Both mptcp_setsockopt_sol_socket_tstamp() and
mptcp_setsockopt_sol_socket_timestamping() iterate over subflows,
acquire the subflow socket lock, but then erroneously pass the MPTCP
msk socket to sock_set_timestamp() / sock_set_timestamping() instead
of the subflow ssk. As a result, the timestamp flags are set on the
wrong socket and have no effect on the actual subflows.

Pass ssk instead of sk to both helpers.

Fixes: 9061f24bf82e ("mptcp: sockopt: propagate timestamp request to subflows")
Cc: stable@vger.kernel.org
Signed-off-by: Gang Yan <yangang@kylinos.cn>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20260427-net-mptcp-misc-fixes-7-1-rc2-v1-1-7432b7f279fa@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/mptcp/sockopt.c

index de90a2897d2d8f88202b3d6066a82db9ef8d537e..79db15903e7a52aacf81e56e3e2f718ff4a88c43 100644 (file)
@@ -161,7 +161,7 @@ static int mptcp_setsockopt_sol_socket_tstamp(struct mptcp_sock *msk, int optnam
                struct sock *ssk = mptcp_subflow_tcp_sock(subflow);
                bool slow = lock_sock_fast(ssk);
 
-               sock_set_timestamp(sk, optname, !!val);
+               sock_set_timestamp(ssk, optname, !!val);
                unlock_sock_fast(ssk, slow);
        }
 
@@ -237,7 +237,7 @@ static int mptcp_setsockopt_sol_socket_timestamping(struct mptcp_sock *msk,
                struct sock *ssk = mptcp_subflow_tcp_sock(subflow);
                bool slow = lock_sock_fast(ssk);
 
-               sock_set_timestamping(sk, optname, timestamping);
+               sock_set_timestamping(ssk, optname, timestamping);
                unlock_sock_fast(ssk, slow);
        }