瀏覽代碼

ARC: futex cosmetics

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>
Vineet Gupta 10 年之前
父節點
當前提交
ed574e2bbd
共有 1 個文件被更改,包括 9 次插入8 次删除
  1. 9 8
      arch/arc/include/asm/futex.h

+ 9 - 8
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);
 		__futex_atomic_op("mov %0, %3", ret, oldval, uaddr, oparg);
 		break;
 		break;
 	case FUTEX_OP_ADD:
 	case FUTEX_OP_ADD:
+		/* oldval = *uaddr; *uaddr += oparg ; ret = *uaddr */
 		__futex_atomic_op("add %0, %1, %3", ret, oldval, uaddr, oparg);
 		__futex_atomic_op("add %0, %1, %3", ret, oldval, uaddr, oparg);
 		break;
 		break;
 	case FUTEX_OP_OR:
 	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)
  * cmpxchg of futex (pagefaults disabled by caller)
  */
  */
 static inline int
 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;
 		return -EFAULT;
 
 
 	smp_mb();
 	smp_mb();
@@ -173,14 +174,14 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr, u32 oldval,
 	"	.word   1b, 4b	\n"
 	"	.word   1b, 4b	\n"
 	"	.word   2b, 4b	\n"
 	"	.word   2b, 4b	\n"
 	"	.previous\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");
 	: "cc", "memory");
 
 
 	smp_mb();
 	smp_mb();
 
 
-	*uval = val;
-	return val;
+	*uval = existval;
+	return existval;
 }
 }
 
 
 #endif
 #endif