Skip to content

Commit 26023e9

Browse files
edumazetkuba-moo
authored andcommitted
tcp: annotate data-races around icsk->icsk_user_timeout
This field can be read locklessly from do_tcp_getsockopt() Fixes: dca43c7 ("tcp: Add TCP_USER_TIMEOUT socket option.") Signed-off-by: Eric Dumazet <edumazet@google.com> Link: https://lore.kernel.org/r/20230719212857.3943972-11-edumazet@google.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1 parent 1aeb87b commit 26023e9

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

net/ipv4/tcp.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3300,7 +3300,7 @@ EXPORT_SYMBOL(tcp_sock_set_syncnt);
33003300
void tcp_sock_set_user_timeout(struct sock *sk, u32 val)
33013301
{
33023302
lock_sock(sk);
3303-
inet_csk(sk)->icsk_user_timeout = val;
3303+
WRITE_ONCE(inet_csk(sk)->icsk_user_timeout, val);
33043304
release_sock(sk);
33053305
}
33063306
EXPORT_SYMBOL(tcp_sock_set_user_timeout);
@@ -3620,7 +3620,7 @@ int do_tcp_setsockopt(struct sock *sk, int level, int optname,
36203620
if (val < 0)
36213621
err = -EINVAL;
36223622
else
3623-
icsk->icsk_user_timeout = val;
3623+
WRITE_ONCE(icsk->icsk_user_timeout, val);
36243624
break;
36253625

36263626
case TCP_FASTOPEN:
@@ -4141,7 +4141,7 @@ int do_tcp_getsockopt(struct sock *sk, int level,
41414141
break;
41424142

41434143
case TCP_USER_TIMEOUT:
4144-
val = icsk->icsk_user_timeout;
4144+
val = READ_ONCE(icsk->icsk_user_timeout);
41454145
break;
41464146

41474147
case TCP_FASTOPEN:

0 commit comments

Comments
 (0)