|
@@ -8,8 +8,7 @@
|
|
|
#ifndef CONFIG_SMP
|
|
|
/*
|
|
|
* The following implementation only for uniprocessor machines.
|
|
|
- * For UP, it's relies on the fact that pagefault_disable() also disables
|
|
|
- * preemption to ensure mutual exclusion.
|
|
|
+ * It relies on preempt_disable() ensuring mutual exclusion.
|
|
|
*
|
|
|
*/
|
|
|
|
|
@@ -38,6 +37,7 @@ futex_atomic_op_inuser(int encoded_op, u32 __user *uaddr)
|
|
|
if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
|
|
|
oparg = 1 << oparg;
|
|
|
|
|
|
+ preempt_disable();
|
|
|
pagefault_disable();
|
|
|
|
|
|
ret = -EFAULT;
|
|
@@ -72,6 +72,7 @@ futex_atomic_op_inuser(int encoded_op, u32 __user *uaddr)
|
|
|
|
|
|
out_pagefault_enable:
|
|
|
pagefault_enable();
|
|
|
+ preempt_enable();
|
|
|
|
|
|
if (ret == 0) {
|
|
|
switch (cmp) {
|