diff options
Diffstat (limited to 'net/ipv6/raw.c')
| -rw-r--r-- | net/ipv6/raw.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c index 617645bc5ed6..e2b848ec9851 100644 --- a/net/ipv6/raw.c +++ b/net/ipv6/raw.c | |||
| @@ -434,12 +434,12 @@ csum_copy_err: | |||
| 434 | /* Clear queue. */ | 434 | /* Clear queue. */ |
| 435 | if (flags&MSG_PEEK) { | 435 | if (flags&MSG_PEEK) { |
| 436 | int clear = 0; | 436 | int clear = 0; |
| 437 | spin_lock_irq(&sk->sk_receive_queue.lock); | 437 | spin_lock_bh(&sk->sk_receive_queue.lock); |
| 438 | if (skb == skb_peek(&sk->sk_receive_queue)) { | 438 | if (skb == skb_peek(&sk->sk_receive_queue)) { |
| 439 | __skb_unlink(skb, &sk->sk_receive_queue); | 439 | __skb_unlink(skb, &sk->sk_receive_queue); |
| 440 | clear = 1; | 440 | clear = 1; |
| 441 | } | 441 | } |
| 442 | spin_unlock_irq(&sk->sk_receive_queue.lock); | 442 | spin_unlock_bh(&sk->sk_receive_queue.lock); |
| 443 | if (clear) | 443 | if (clear) |
| 444 | kfree_skb(skb); | 444 | kfree_skb(skb); |
| 445 | } | 445 | } |
| @@ -971,11 +971,11 @@ static int rawv6_ioctl(struct sock *sk, int cmd, unsigned long arg) | |||
| 971 | struct sk_buff *skb; | 971 | struct sk_buff *skb; |
| 972 | int amount = 0; | 972 | int amount = 0; |
| 973 | 973 | ||
| 974 | spin_lock_irq(&sk->sk_receive_queue.lock); | 974 | spin_lock_bh(&sk->sk_receive_queue.lock); |
| 975 | skb = skb_peek(&sk->sk_receive_queue); | 975 | skb = skb_peek(&sk->sk_receive_queue); |
| 976 | if (skb != NULL) | 976 | if (skb != NULL) |
| 977 | amount = skb->tail - skb->h.raw; | 977 | amount = skb->tail - skb->h.raw; |
| 978 | spin_unlock_irq(&sk->sk_receive_queue.lock); | 978 | spin_unlock_bh(&sk->sk_receive_queue.lock); |
| 979 | return put_user(amount, (int __user *)arg); | 979 | return put_user(amount, (int __user *)arg); |
| 980 | } | 980 | } |
| 981 | 981 | ||
