Cc: Peter Zijlstra (Intel) <pet...@infradead.org>
Cc: Thomas Gleixner <t...@linutronix.de>
Cc: Michel Lespinasse <wal...@google.com>
Signed-off-by: Vineet Gupta <vgu...@synopsys.com>
---
 arch/arc/include/asm/futex.h | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/arch/arc/include/asm/futex.h b/arch/arc/include/asm/futex.h
index 9de18a526aff..14b1c9aaf455 100644
--- a/arch/arc/include/asm/futex.h
+++ b/arch/arc/include/asm/futex.h
@@ -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
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to