]> git.hungrycats.org Git - linux/commitdiff
[PATCH] pointer-to-int done the canonical way
authorAlexander Viro <viro@parcelfarce.linux.theplanet.co.uk>
Wed, 14 Jul 2004 02:37:49 +0000 (19:37 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Wed, 14 Jul 2004 02:37:49 +0000 (19:37 -0700)
Extraction of int from pointer is slightly broken in several places.

drivers/atm/idt77105.c
drivers/atm/suni.c
drivers/atm/uPD98402.c
kernel/futex.c

index c1fb6c710617f1a95bb8919cee3554c7e87b3655..0747dbadbcf1b3573fd4aa0a338b531b926ff624 100644 (file)
@@ -198,7 +198,7 @@ static int idt77105_ioctl(struct atm_dev *dev,unsigned int cmd,void __user *arg)
                case IDT77105_GETSTAT:
                        return fetch_stats(dev, arg, cmd == IDT77105_GETSTATZ);
                case ATM_SETLOOP:
-                       return set_loopback(dev,(int) (long) arg);
+                       return set_loopback(dev,(int)(unsigned long) arg);
                case ATM_GETLOOP:
                        return put_user(PRIV(dev)->loop_mode,(int __user *)arg) ?
                            -EFAULT : 0;
index e5a0f5cbdc21439aaf2ef2ce85ba6f6093e446d7..678df94184dc8373677b2200597639d17646a654 100644 (file)
@@ -196,7 +196,7 @@ static int suni_ioctl(struct atm_dev *dev,unsigned int cmd,void __user *arg)
                case SONET_GETFRSENSE:
                        return -EINVAL;
                case ATM_SETLOOP:
-                       return set_loopback(dev,(int) (long) arg);
+                       return set_loopback(dev,(int)(unsigned long)arg);
                case ATM_GETLOOP:
                        return put_user(PRIV(dev)->loop_mode,(int __user *)arg) ?
                            -EFAULT : 0;
index da33eaddc808529ee5347f13290afcc950a32693..9504cce51bfb372654e2dec26fbadc95ce093b73 100644 (file)
@@ -140,14 +140,14 @@ static int uPD98402_ioctl(struct atm_dev *dev,unsigned int cmd,void __user *arg)
                 case SONET_GETSTAT:
                        return fetch_stats(dev,arg, cmd == SONET_GETSTATZ);
                case SONET_SETFRAMING:
-                       return set_framing(dev,(int) (long) arg);
+                       return set_framing(dev, (int)(unsigned long)arg);
                case SONET_GETFRAMING:
                        return put_user(PRIV(dev)->framing,(int __user *)arg) ?
                            -EFAULT : 0;
                case SONET_GETFRSENSE:
                        return get_sense(dev,arg);
                case ATM_SETLOOP:
-                       return set_loopback(dev,(int) (long) arg);
+                       return set_loopback(dev, (int)(unsigned long)arg);
                case ATM_GETLOOP:
                        return put_user(PRIV(dev)->loop_mode,(int __user *)arg) ?
                            -EFAULT : 0;
index d9b9694fd2e8598569d8273c363868e1d5ad2955..9a25d76bd6bd9aa13b9f74be1c0778ffe99c6039 100644 (file)
@@ -704,7 +704,7 @@ asmlinkage long sys_futex(u32 __user *uaddr, int op, int val,
         * requeue parameter in 'utime' if op == FUTEX_REQUEUE.
         */
        if (op >= FUTEX_REQUEUE)
-               val2 = (int) (long) utime;
+               val2 = (int) (unsigned long) utime;
 
        return do_futex((unsigned long)uaddr, op, val, timeout,
                        (unsigned long)uaddr2, val2, val3);