diff options
Diffstat (limited to 'net/core/sock.c')
| -rw-r--r-- | net/core/sock.c | 4 | 
1 files changed, 2 insertions, 2 deletions
diff --git a/net/core/sock.c b/net/core/sock.c index 43bf3818c19e..0963689a5950 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -482,7 +482,7 @@ int __sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)  	unsigned long flags;  	struct sk_buff_head *list = &sk->sk_receive_queue; -	if (atomic_read(&sk->sk_rmem_alloc) >= sk->sk_rcvbuf) { +	if (atomic_read(&sk->sk_rmem_alloc) >= READ_ONCE(sk->sk_rcvbuf)) {  		atomic_inc(&sk->sk_drops);  		trace_sock_rcvqueue_full(sk, skb);  		return -ENOMEM; @@ -552,7 +552,7 @@ int __sk_receive_skb(struct sock *sk, struct sk_buff *skb,  	skb->dev = NULL; -	if (sk_rcvqueues_full(sk, sk->sk_rcvbuf)) { +	if (sk_rcvqueues_full(sk, READ_ONCE(sk->sk_rcvbuf))) {  		atomic_inc(&sk->sk_drops);  		goto discard_and_relse;  	}  |