diff options
author | Eric Dumazet <edumazet@google.com> | 2019-12-16 18:51:03 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-12-17 22:09:52 -0800 |
commit | 7c68fa2bddda6d942bd387c9ba5b4300737fd991 (patch) | |
tree | 3e77528920733f3ed1238495a95c87f9f5d59ac9 /net/core/sock.c | |
parent | cad46039e4c99812db067c8ac22a864960e7acc4 (diff) | |
download | linux-7c68fa2bddda6d942bd387c9ba5b4300737fd991.tar.gz linux-7c68fa2bddda6d942bd387c9ba5b4300737fd991.tar.bz2 linux-7c68fa2bddda6d942bd387c9ba5b4300737fd991.zip |
net: annotate lockless accesses to sk->sk_pacing_shift
sk->sk_pacing_shift can be read and written without lock
synchronization. This patch adds annotations to
document this fact and avoid future syzbot complains.
This might also avoid unexpected false sharing
in sk_pacing_shift_update(), as the compiler
could remove the conditional check and always
write over sk->sk_pacing_shift :
if (sk->sk_pacing_shift != val)
sk->sk_pacing_shift = val;
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/sock.c')
-rw-r--r-- | net/core/sock.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/core/sock.c b/net/core/sock.c index 043db3ce023e..8459ad579f73 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -2916,7 +2916,7 @@ void sock_init_data(struct socket *sock, struct sock *sk) sk->sk_max_pacing_rate = ~0UL; sk->sk_pacing_rate = ~0UL; - sk->sk_pacing_shift = 10; + WRITE_ONCE(sk->sk_pacing_shift, 10); sk->sk_incoming_cpu = -1; sk_rx_queue_clear(sk); |