diff --git a/net/core/datagram.c b/net/core/datagram.c index 57f3a6fcfc1e20bf31f2f6cf0abd0b38f9cef5f4..a487df53a4534b19d4b4a1773d4b3b2fb324e42b 100644 --- a/net/core/datagram.c +++ b/net/core/datagram.c @@ -279,7 +279,7 @@ struct sk_buff *__skb_try_recv_datagram(struct sock *sk, unsigned int flags, break; sk_busy_loop(sk, flags & MSG_DONTWAIT); - } while (!skb_queue_empty(&sk->sk_receive_queue)); + } while (sk->sk_receive_queue.prev != *last); error = -EAGAIN;