[PATCH] softmac: Fix WX and association related races
[powerpc.git] / include / asm-parisc / futex.h
index 9feff4c..d84bbb2 100644 (file)
@@ -1,5 +1,5 @@
-#ifndef _ASM_FUTEX_H
-#define _ASM_FUTEX_H
+#ifndef _ASM_PARISC_FUTEX_H
+#define _ASM_PARISC_FUTEX_H
 
 #ifdef __KERNEL__
 
@@ -49,5 +49,23 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
        return ret;
 }
 
+/* Non-atomic version */
+static inline int
+futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval)
+{
+       int err = 0;
+       int uval;
+
+       if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int)))
+               return -EFAULT;
+
+       err = get_user(uval, uaddr);
+       if (err) return -EFAULT;
+       if (uval == oldval)
+               err = put_user(newval, uaddr);
+       if (err) return -EFAULT;
+       return uval;
+}
+
 #endif
 #endif