diff options
Diffstat (limited to 'net/ipv4/ip_sockglue.c')
-rw-r--r-- | net/ipv4/ip_sockglue.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c index 47012b93cad2..f8b172f89811 100644 --- a/net/ipv4/ip_sockglue.c +++ b/net/ipv4/ip_sockglue.c | |||
@@ -360,14 +360,14 @@ int ip_recv_error(struct sock *sk, struct msghdr *msg, int len) | |||
360 | err = copied; | 360 | err = copied; |
361 | 361 | ||
362 | /* Reset and regenerate socket error */ | 362 | /* Reset and regenerate socket error */ |
363 | spin_lock_irq(&sk->sk_error_queue.lock); | 363 | spin_lock_bh(&sk->sk_error_queue.lock); |
364 | sk->sk_err = 0; | 364 | sk->sk_err = 0; |
365 | if ((skb2 = skb_peek(&sk->sk_error_queue)) != NULL) { | 365 | if ((skb2 = skb_peek(&sk->sk_error_queue)) != NULL) { |
366 | sk->sk_err = SKB_EXT_ERR(skb2)->ee.ee_errno; | 366 | sk->sk_err = SKB_EXT_ERR(skb2)->ee.ee_errno; |
367 | spin_unlock_irq(&sk->sk_error_queue.lock); | 367 | spin_unlock_bh(&sk->sk_error_queue.lock); |
368 | sk->sk_error_report(sk); | 368 | sk->sk_error_report(sk); |
369 | } else | 369 | } else |
370 | spin_unlock_irq(&sk->sk_error_queue.lock); | 370 | spin_unlock_bh(&sk->sk_error_queue.lock); |
371 | 371 | ||
372 | out_free_skb: | 372 | out_free_skb: |
373 | kfree_skb(skb); | 373 | kfree_skb(skb); |