summaryrefslogtreecommitdiff
path: root/net/core/skbuff.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2015-03-09 08:42:00 +0100
committerTakashi Iwai <tiwai@suse.de>2015-03-09 08:42:00 +0100
commit4aa01c408b7022c620241b373d4c3707a2ebeab6 (patch)
tree25df2a7453ec3bf7fc82f2871756b4efd6d3d283 /net/core/skbuff.c
parent5371fc0ecdf55b6811ade8a198de8ace2f4e5861 (diff)
parenta1f3f1ca66bd12c339b17a0c2ef93a093f90a277 (diff)
Merge branch 'for-linus' into for-next
Merging the HD-audio fixes back to base devel branch for further working on it.
Diffstat (limited to 'net/core/skbuff.c')
-rw-r--r--net/core/skbuff.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index 88c613eab142..f80507823531 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -3621,13 +3621,14 @@ struct sk_buff *sock_dequeue_err_skb(struct sock *sk)
{
struct sk_buff_head *q = &sk->sk_error_queue;
struct sk_buff *skb, *skb_next;
+ unsigned long flags;
int err = 0;
- spin_lock_bh(&q->lock);
+ spin_lock_irqsave(&q->lock, flags);
skb = __skb_dequeue(q);
if (skb && (skb_next = skb_peek(q)))
err = SKB_EXT_ERR(skb_next)->ee.ee_errno;
- spin_unlock_bh(&q->lock);
+ spin_unlock_irqrestore(&q->lock, flags);
sk->sk_err = err;
if (err)