diff options
-rw-r--r-- | arch/arm/include/asm/futex.h | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/arch/arm/include/asm/futex.h b/arch/arm/include/asm/futex.h index b33fe7065b38..7133a8620830 100644 --- a/arch/arm/include/asm/futex.h +++ b/arch/arm/include/asm/futex.h | |||
@@ -95,7 +95,8 @@ futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval) | |||
95 | if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int))) | 95 | if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int))) |
96 | return -EFAULT; | 96 | return -EFAULT; |
97 | 97 | ||
98 | pagefault_disable(); /* implies preempt_disable() */ | 98 | /* Note that preemption is disabled by futex_atomic_cmpxchg_inatomic |
99 | * call sites. */ | ||
99 | 100 | ||
100 | __asm__ __volatile__("@futex_atomic_cmpxchg_inatomic\n" | 101 | __asm__ __volatile__("@futex_atomic_cmpxchg_inatomic\n" |
101 | "1: " T(ldr) " %0, [%3]\n" | 102 | "1: " T(ldr) " %0, [%3]\n" |
@@ -115,8 +116,6 @@ futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval) | |||
115 | : "r" (oldval), "r" (newval), "r" (uaddr), "Ir" (-EFAULT) | 116 | : "r" (oldval), "r" (newval), "r" (uaddr), "Ir" (-EFAULT) |
116 | : "cc", "memory"); | 117 | : "cc", "memory"); |
117 | 118 | ||
118 | pagefault_enable(); /* subsumes preempt_enable() */ | ||
119 | |||
120 | return val; | 119 | return val; |
121 | } | 120 | } |
122 | 121 | ||