diff options
Diffstat (limited to 'net/ipv6/udp.c')
| -rw-r--r-- | net/ipv6/udp.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c index e251d0ba4f39..eff050ac7049 100644 --- a/net/ipv6/udp.c +++ b/net/ipv6/udp.c | |||
| @@ -300,12 +300,12 @@ csum_copy_err: | |||
| 300 | /* Clear queue. */ | 300 | /* Clear queue. */ |
| 301 | if (flags&MSG_PEEK) { | 301 | if (flags&MSG_PEEK) { |
| 302 | int clear = 0; | 302 | int clear = 0; |
| 303 | spin_lock_irq(&sk->sk_receive_queue.lock); | 303 | spin_lock_bh(&sk->sk_receive_queue.lock); |
| 304 | if (skb == skb_peek(&sk->sk_receive_queue)) { | 304 | if (skb == skb_peek(&sk->sk_receive_queue)) { |
| 305 | __skb_unlink(skb, &sk->sk_receive_queue); | 305 | __skb_unlink(skb, &sk->sk_receive_queue); |
| 306 | clear = 1; | 306 | clear = 1; |
| 307 | } | 307 | } |
| 308 | spin_unlock_irq(&sk->sk_receive_queue.lock); | 308 | spin_unlock_bh(&sk->sk_receive_queue.lock); |
| 309 | if (clear) | 309 | if (clear) |
| 310 | kfree_skb(skb); | 310 | kfree_skb(skb); |
| 311 | } | 311 | } |
