diff options
author | Eric Dumazet <edumazet@google.com> | 2019-11-05 14:11:54 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-11-06 16:14:48 -0800 |
commit | 099ecf59f05b5f30f42ebac0ab8cb94f9b18c90c (patch) | |
tree | 06d62b7b24635bbb78ad38f24933cad260b5c346 /include | |
parent | 288efe8606b62d0753ba6722b36ef241877251fd (diff) |
net: annotate lockless accesses to sk->sk_max_ack_backlog
sk->sk_max_ack_backlog can be read without any lock being held
at least in TCP/DCCP cases.
We need to use READ_ONCE()/WRITE_ONCE() to avoid load/store tearing
and/or potential KCSAN warnings.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/net/sock.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/net/sock.h b/include/net/sock.h index a126784aa7d9..d4d3ef5ba049 100644 --- a/include/net/sock.h +++ b/include/net/sock.h @@ -869,7 +869,7 @@ static inline void sk_acceptq_added(struct sock *sk) static inline bool sk_acceptq_is_full(const struct sock *sk) { - return READ_ONCE(sk->sk_ack_backlog) > sk->sk_max_ack_backlog; + return READ_ONCE(sk->sk_ack_backlog) > READ_ONCE(sk->sk_max_ack_backlog); } /* |