diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 6493c98c8631..b04b5bd43f54 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -1887,7 +1887,7 @@ static inline void __skb_insert(struct sk_buff *newsk, WRITE_ONCE(newsk->prev, prev); WRITE_ONCE(next->prev, newsk); WRITE_ONCE(prev->next, newsk); - list->qlen++; + WRITE_ONCE(list->qlen, list->qlen + 1); } static inline void __skb_queue_splice(const struct sk_buff_head *list, diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index 52ee3a9bb709..3098710c9c34 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c @@ -2734,7 +2734,7 @@ static __poll_t unix_dgram_poll(struct file *file, struct socket *sock, other = unix_peer(sk); if (other && unix_peer(other) != sk && - unix_recvq_full(other) && + unix_recvq_full_lockless(other) && unix_dgram_peer_wake_me(sk, other)) writable = 0;