]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
ARC: futex cosmetics
authorVineet Gupta <vgupta@synopsys.com>
Wed, 5 Aug 2015 13:53:34 +0000 (19:23 +0530)
committerVineet Gupta <vgupta@synopsys.com>
Thu, 20 Aug 2015 12:46:00 +0000 (18:16 +0530)
Cc: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Michel Lespinasse <walken@google.com>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
arch/arc/include/asm/futex.h

index 9de18a526aff18678e393808d99e25799231e250..14b1c9aaf4553b67a4f8907c52ce910a03de91c5 100644 (file)
@@ -94,6 +94,7 @@ static inline int futex_atomic_op_inuser(int encoded_op, u32 __user *uaddr)
                __futex_atomic_op("mov %0, %3", ret, oldval, uaddr, oparg);
                break;
        case FUTEX_OP_ADD:
+               /* oldval = *uaddr; *uaddr += oparg ; ret = *uaddr */
                __futex_atomic_op("add %0, %1, %3", ret, oldval, uaddr, oparg);
                break;
        case FUTEX_OP_OR:
@@ -142,12 +143,12 @@ static inline int futex_atomic_op_inuser(int encoded_op, u32 __user *uaddr)
  * cmpxchg of futex (pagefaults disabled by caller)
  */
 static inline int
-futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr, u32 oldval,
-                                       u32 newval)
+futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr, u32 expval,
+                             u32 newval)
 {
-       u32 val;
+       u32 existval;
 
-       if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int)))
+       if (!access_ok(VERIFY_WRITE, uaddr, sizeof(u32)))
                return -EFAULT;
 
        smp_mb();
@@ -173,14 +174,14 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr, u32 oldval,
        "       .word   1b, 4b  \n"
        "       .word   2b, 4b  \n"
        "       .previous\n"
-       : "=&r"(val)
-       : "r"(oldval), "r"(newval), "r"(uaddr), "ir"(-EFAULT)
+       : "=&r"(existval)
+       : "r"(expval), "r"(newval), "r"(uaddr), "ir"(-EFAULT)
        : "cc", "memory");
 
        smp_mb();
 
-       *uval = val;
-       return val;
+       *uval = existval;
+       return existval;
 }
 
 #endif