From: Jason Xing Date: Fri, 8 Mar 2024 11:25:04 +0000 (+0800) Subject: tcp: annotate a data-race around sysctl_tcp_wmem[0] X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=683a67da95616c91a85b98e41dc8eefe9f2b29e7;p=linux.git tcp: annotate a data-race around sysctl_tcp_wmem[0] When reading wmem[0], it could be changed concurrently without READ_ONCE() protection. So add one annotation here. Signed-off-by: Jason Xing Reviewed-by: Eric Dumazet Signed-off-by: David S. Miller --- diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index b091149742b1d..d20b62d521712 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -975,7 +975,7 @@ int tcp_wmem_schedule(struct sock *sk, int copy) * Use whatever is left in sk->sk_forward_alloc and tcp_wmem[0] * to guarantee some progress. */ - left = sock_net(sk)->ipv4.sysctl_tcp_wmem[0] - sk->sk_wmem_queued; + left = READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_wmem[0]) - sk->sk_wmem_queued; if (left > 0) sk_forced_mem_schedule(sk, min(left, copy)); return min(copy, sk->sk_forward_alloc);