From fe9d93902426c351d60af1c7b70b09c205ac08ba Mon Sep 17 00:00:00 2001 From: Pavel Emelyanov Date: Tue, 21 Feb 2012 07:30:33 +0000 Subject: [PATCH] --- yaml --- r: 290224 b: refs/heads/master c: 4934b0329f7150dcb5f90506860e2db32274c755 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/core/datagram.c | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index edd0d48f9988..98a7ec1f6fe8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0b0a635f79f91f3755b6518627ea06dd0dbfd523 +refs/heads/master: 4934b0329f7150dcb5f90506860e2db32274c755 diff --git a/trunk/net/core/datagram.c b/trunk/net/core/datagram.c index 68bbf9f65cb0..6f54d0a17f8e 100644 --- a/trunk/net/core/datagram.c +++ b/trunk/net/core/datagram.c @@ -180,18 +180,19 @@ struct sk_buff *__skb_recv_datagram(struct sock *sk, unsigned flags, * However, this function was correct in any case. 8) */ unsigned long cpu_flags; + struct sk_buff_head *queue = &sk->sk_receive_queue; - spin_lock_irqsave(&sk->sk_receive_queue.lock, cpu_flags); - skb = skb_peek(&sk->sk_receive_queue); + spin_lock_irqsave(&queue->lock, cpu_flags); + skb = skb_peek(queue); if (skb) { *peeked = skb->peeked; if (flags & MSG_PEEK) { skb->peeked = 1; atomic_inc(&skb->users); } else - __skb_unlink(skb, &sk->sk_receive_queue); + __skb_unlink(skb, queue); } - spin_unlock_irqrestore(&sk->sk_receive_queue.lock, cpu_flags); + spin_unlock_irqrestore(&queue->lock, cpu_flags); if (skb) return skb;