patch-2_6_7-vs1_9_1_12
[linux-2.6.git] / net / atm / ioctl.c
index b8133d1..b15e724 100644 (file)
@@ -49,6 +49,7 @@ int vcc_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
        struct atm_vcc *vcc;
        int error;
        struct list_head * pos;
+       void __user *argp = (void __user *)arg;
 
        vcc = ATM_SD(sock);
        switch (cmd) {
@@ -60,7 +61,7 @@ int vcc_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
                        }
                        error = put_user(vcc->sk->sk_sndbuf -
                                         atomic_read(&vcc->sk->sk_wmem_alloc),
-                                        (int *) arg) ? -EFAULT : 0;
+                                        (int __user *) argp) ? -EFAULT : 0;
                        goto done;
                case SIOCINQ:
                        {
@@ -72,12 +73,11 @@ int vcc_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
                                }
                                skb = skb_peek(&vcc->sk->sk_receive_queue);
                                error = put_user(skb ? skb->len : 0,
-                                                (int *) arg) ? -EFAULT : 0;
+                                                (int __user *)argp) ? -EFAULT : 0;
                                goto done;
                        }
                case SIOCGSTAMP: /* borrowed from IP */
-                       error = sock_get_timestamp(vcc->sk, (struct timeval *)
-                                                  arg);
+                       error = sock_get_timestamp(vcc->sk, argp);
                        goto done;
                case ATM_SETSC:
                        printk(KERN_WARNING "ATM_SETSC is obsolete\n");
@@ -131,7 +131,7 @@ int vcc_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
        if (error != -ENOIOCTLCMD)
                goto done;
 
-       error = atm_dev_ioctl(cmd, arg);
+       error = atm_dev_ioctl(cmd, argp);
 
 done:
        return error;