|
@@ -825,28 +825,28 @@ static int compat_raw_getsockopt(struct sock *sk, int level, int optname,
|
|
|
static int raw_ioctl(struct sock *sk, int cmd, unsigned long arg)
|
|
|
{
|
|
|
switch (cmd) {
|
|
|
- case SIOCOUTQ: {
|
|
|
- int amount = sk_wmem_alloc_get(sk);
|
|
|
+ case SIOCOUTQ: {
|
|
|
+ int amount = sk_wmem_alloc_get(sk);
|
|
|
|
|
|
- return put_user(amount, (int __user *)arg);
|
|
|
- }
|
|
|
- case SIOCINQ: {
|
|
|
- struct sk_buff *skb;
|
|
|
- int amount = 0;
|
|
|
-
|
|
|
- spin_lock_bh(&sk->sk_receive_queue.lock);
|
|
|
- skb = skb_peek(&sk->sk_receive_queue);
|
|
|
- if (skb != NULL)
|
|
|
- amount = skb->len;
|
|
|
- spin_unlock_bh(&sk->sk_receive_queue.lock);
|
|
|
- return put_user(amount, (int __user *)arg);
|
|
|
- }
|
|
|
+ return put_user(amount, (int __user *)arg);
|
|
|
+ }
|
|
|
+ case SIOCINQ: {
|
|
|
+ struct sk_buff *skb;
|
|
|
+ int amount = 0;
|
|
|
+
|
|
|
+ spin_lock_bh(&sk->sk_receive_queue.lock);
|
|
|
+ skb = skb_peek(&sk->sk_receive_queue);
|
|
|
+ if (skb != NULL)
|
|
|
+ amount = skb->len;
|
|
|
+ spin_unlock_bh(&sk->sk_receive_queue.lock);
|
|
|
+ return put_user(amount, (int __user *)arg);
|
|
|
+ }
|
|
|
|
|
|
- default:
|
|
|
+ default:
|
|
|
#ifdef CONFIG_IP_MROUTE
|
|
|
- return ipmr_ioctl(sk, cmd, (void __user *)arg);
|
|
|
+ return ipmr_ioctl(sk, cmd, (void __user *)arg);
|
|
|
#else
|
|
|
- return -ENOIOCTLCMD;
|
|
|
+ return -ENOIOCTLCMD;
|
|
|
#endif
|
|
|
}
|
|
|
}
|