net: add missing data-race annotations around sk->sk_peek_off
sk_getsockopt() runs locklessly, thus we need to annotate the read
of sk->sk_peek_off.
While we are at it, add corresponding annotations to sk_set_peek_off()
and unix_set_peek_off().
Fixes: b9bb53f383
("sock: convert sk_peek_offset functions to WRITE_ONCE")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Willem de Bruijn <willemb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
3c5b4d69c3
commit
11695c6e96
|
@ -1870,7 +1870,7 @@ int sk_getsockopt(struct sock *sk, int level, int optname,
|
|||
if (!sock->ops->set_peek_off)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
v.val = sk->sk_peek_off;
|
||||
v.val = READ_ONCE(sk->sk_peek_off);
|
||||
break;
|
||||
case SO_NOFCS:
|
||||
v.val = sock_flag(sk, SOCK_NOFCS);
|
||||
|
@ -3179,7 +3179,7 @@ EXPORT_SYMBOL(__sk_mem_reclaim);
|
|||
|
||||
int sk_set_peek_off(struct sock *sk, int val)
|
||||
{
|
||||
sk->sk_peek_off = val;
|
||||
WRITE_ONCE(sk->sk_peek_off, val);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(sk_set_peek_off);
|
||||
|
|
|
@ -790,7 +790,7 @@ static int unix_set_peek_off(struct sock *sk, int val)
|
|||
if (mutex_lock_interruptible(&u->iolock))
|
||||
return -EINTR;
|
||||
|
||||
sk->sk_peek_off = val;
|
||||
WRITE_ONCE(sk->sk_peek_off, val);
|
||||
mutex_unlock(&u->iolock);
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue