linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / include / asm-i386 / futex.h
index 946d97c..44b9db8 100644 (file)
@@ -20,8 +20,8 @@
        .align  8\n\
        .long   1b,3b\n\
        .previous"                                              \
-       : "=r" (oldval), "=r" (ret), "+m" (*uaddr)              \
-       : "i" (-EFAULT), "0" (oparg), "1" (0))
+       : "=r" (oldval), "=r" (ret), "=m" (*uaddr)              \
+       : "i" (-EFAULT), "m" (*uaddr), "0" (oparg), "1" (0))
 
 #define __futex_atomic_op2(insn, ret, oldval, uaddr, oparg) \
   __asm__ __volatile (                                         \
@@ -38,9 +38,9 @@
        .align  8\n\
        .long   1b,4b,2b,4b\n\
        .previous"                                              \
-       : "=&a" (oldval), "=&r" (ret), "+m" (*uaddr),           \
+       : "=&a" (oldval), "=&r" (ret), "=m" (*uaddr),           \
          "=&r" (tem)                                           \
-       : "r" (oparg), "i" (-EFAULT), "1" (0))
+       : "r" (oparg), "i" (-EFAULT), "m" (*uaddr), "1" (0))
 
 static inline int
 futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
@@ -104,32 +104,5 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
        return ret;
 }
 
-static inline int
-futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval)
-{
-       if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int)))
-               return -EFAULT;
-
-       __asm__ __volatile__(
-               "1:     " LOCK_PREFIX "cmpxchgl %3, %1          \n"
-
-               "2:     .section .fixup, \"ax\"                 \n"
-               "3:     mov     %2, %0                          \n"
-               "       jmp     2b                              \n"
-               "       .previous                               \n"
-
-               "       .section __ex_table, \"a\"              \n"
-               "       .align  8                               \n"
-               "       .long   1b,3b                           \n"
-               "       .previous                               \n"
-
-               : "=a" (oldval), "+m" (*uaddr)
-               : "i" (-EFAULT), "r" (newval), "0" (oldval)
-               : "memory"
-       );
-
-       return oldval;
-}
-
 #endif
 #endif