diff options
| -rw-r--r-- | net/ipv4/udp.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c index 14bc654b6842..2cc259736c2e 100644 --- a/net/ipv4/udp.c +++ b/net/ipv4/udp.c | |||
| @@ -1577,7 +1577,7 @@ static int first_packet_length(struct sock *sk) | |||
| 1577 | 1577 | ||
| 1578 | spin_lock_bh(&rcvq->lock); | 1578 | spin_lock_bh(&rcvq->lock); |
| 1579 | skb = __first_packet_length(sk, rcvq, &total); | 1579 | skb = __first_packet_length(sk, rcvq, &total); |
| 1580 | if (!skb && !skb_queue_empty(sk_queue)) { | 1580 | if (!skb && !skb_queue_empty_lockless(sk_queue)) { |
| 1581 | spin_lock(&sk_queue->lock); | 1581 | spin_lock(&sk_queue->lock); |
| 1582 | skb_queue_splice_tail_init(sk_queue, rcvq); | 1582 | skb_queue_splice_tail_init(sk_queue, rcvq); |
| 1583 | spin_unlock(&sk_queue->lock); | 1583 | spin_unlock(&sk_queue->lock); |
| @@ -1650,7 +1650,7 @@ struct sk_buff *__skb_recv_udp(struct sock *sk, unsigned int flags, | |||
| 1650 | return skb; | 1650 | return skb; |
| 1651 | } | 1651 | } |
| 1652 | 1652 | ||
| 1653 | if (skb_queue_empty(sk_queue)) { | 1653 | if (skb_queue_empty_lockless(sk_queue)) { |
| 1654 | spin_unlock_bh(&queue->lock); | 1654 | spin_unlock_bh(&queue->lock); |
| 1655 | goto busy_check; | 1655 | goto busy_check; |
| 1656 | } | 1656 | } |
| @@ -1676,7 +1676,7 @@ busy_check: | |||
| 1676 | break; | 1676 | break; |
| 1677 | 1677 | ||
| 1678 | sk_busy_loop(sk, flags & MSG_DONTWAIT); | 1678 | sk_busy_loop(sk, flags & MSG_DONTWAIT); |
| 1679 | } while (!skb_queue_empty(sk_queue)); | 1679 | } while (!skb_queue_empty_lockless(sk_queue)); |
| 1680 | 1680 | ||
| 1681 | /* sk_queue is empty, reader_queue may contain peeked packets */ | 1681 | /* sk_queue is empty, reader_queue may contain peeked packets */ |
| 1682 | } while (timeo && | 1682 | } while (timeo && |
