futex: Remove redundant pagefault_disable in futex_atomic_cmpxchg_inatomic()
authorMichel Lespinasse <[email protected]>
Fri, 11 Mar 2011 02:47:31 +0000 (18:47 -0800)
committerThomas Gleixner <[email protected]>
Fri, 11 Mar 2011 11:23:08 +0000 (12:23 +0100)
kernel/futex.c disables page faults before calling
futex_atomic_cmpxchg_inatomic(), so there is no need to do it again
within that function.

Signed-off-by: Michel Lespinasse <[email protected]>
Cc: Darren Hart <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Matt Turner <[email protected]>
Cc: Russell King <[email protected]>
Cc: David Howells <[email protected]>
Cc: Tony Luck <[email protected]>
Cc: Michal Simek <[email protected]>
Cc: Ralf Baechle <[email protected]>
Cc: "James E.J. Bottomley" <[email protected]>
Cc: Benjamin Herrenschmidt <[email protected]>
Cc: Martin Schwidefsky <[email protected]>
Cc: Paul Mundt <[email protected]>
Cc: "David S. Miller" <[email protected]>
Cc: Chris Metcalf <[email protected]>
Cc: Linus Torvalds <[email protected]>
LKML-Reference: <20110311024731[email protected]>
Signed-off-by: Thomas Gleixner <[email protected]>
arch/arm/include/asm/futex.h

index b33fe7065b38694fa1d3047c6147a74348d4b732..7133a86208309a72d6bbfc9a42adf5219fe9136e 100644 (file)
@@ -95,7 +95,8 @@ futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval)
        if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int)))
                return -EFAULT;
 
-       pagefault_disable();    /* implies preempt_disable() */
+       /* Note that preemption is disabled by futex_atomic_cmpxchg_inatomic
+        * call sites. */
 
        __asm__ __volatile__("@futex_atomic_cmpxchg_inatomic\n"
        "1:     " T(ldr) "      %0, [%3]\n"
@@ -115,8 +116,6 @@ futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval)
        : "r" (oldval), "r" (newval), "r" (uaddr), "Ir" (-EFAULT)
        : "cc", "memory");
 
-       pagefault_enable();     /* subsumes preempt_enable() */
-
        return val;
 }