|
@@ -53,7 +53,7 @@ static inline int futex_atomic_op_inuser(int encoded_op, u32 __user *uaddr)
|
|
|
if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int)))
|
|
|
return -EFAULT;
|
|
|
|
|
|
- pagefault_disable(); /* implies preempt_disable() */
|
|
|
+ pagefault_disable();
|
|
|
|
|
|
switch (op) {
|
|
|
case FUTEX_OP_SET:
|
|
@@ -75,7 +75,7 @@ static inline int futex_atomic_op_inuser(int encoded_op, u32 __user *uaddr)
|
|
|
ret = -ENOSYS;
|
|
|
}
|
|
|
|
|
|
- pagefault_enable(); /* subsumes preempt_enable() */
|
|
|
+ pagefault_enable();
|
|
|
|
|
|
if (!ret) {
|
|
|
switch (cmp) {
|
|
@@ -104,7 +104,7 @@ static inline int futex_atomic_op_inuser(int encoded_op, u32 __user *uaddr)
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
-/* Compare-xchg with preemption disabled.
|
|
|
+/* Compare-xchg with pagefaults disabled.
|
|
|
* Notes:
|
|
|
* -Best-Effort: Exchg happens only if compare succeeds.
|
|
|
* If compare fails, returns; leaving retry/looping to upper layers
|
|
@@ -121,7 +121,7 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr, u32 oldval,
|
|
|
if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int)))
|
|
|
return -EFAULT;
|
|
|
|
|
|
- pagefault_disable(); /* implies preempt_disable() */
|
|
|
+ pagefault_disable();
|
|
|
|
|
|
/* TBD : can use llock/scond */
|
|
|
__asm__ __volatile__(
|
|
@@ -142,7 +142,7 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr, u32 oldval,
|
|
|
: "r"(oldval), "r"(newval), "r"(uaddr), "ir"(-EFAULT)
|
|
|
: "cc", "memory");
|
|
|
|
|
|
- pagefault_enable(); /* subsumes preempt_enable() */
|
|
|
+ pagefault_enable();
|
|
|
|
|
|
*uval = val;
|
|
|
return val;
|