aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/linux/futex.h
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2014-03-02 13:09:47 +0100
committerThomas Gleixner <tglx@linutronix.de>2014-03-03 11:32:08 +0100
commit03b8c7b623c80af264c4c8d6111e5c6289933666 (patch)
tree7fa99fe8a333d567987e563dfa4ff1cf6ee03f04 /include/linux/futex.h
parentMerge branch 'core/urgent' into core/locking (diff)
downloadwireguard-linux-03b8c7b623c80af264c4c8d6111e5c6289933666.tar.xz
wireguard-linux-03b8c7b623c80af264c4c8d6111e5c6289933666.zip
futex: Allow architectures to skip futex_atomic_cmpxchg_inatomic() test
If an architecture has futex_atomic_cmpxchg_inatomic() implemented and there is no runtime check necessary, allow to skip the test within futex_init(). This allows to get rid of some code which would always give the same result, and also allows the compiler to optimize a couple of if statements away. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: Finn Thain <fthain@telegraphics.com.au> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Link: http://lkml.kernel.org/r/20140302120947.GA3641@osiris Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include/linux/futex.h')
-rw-r--r--include/linux/futex.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/futex.h b/include/linux/futex.h
index b0d95cac826e..6435f46d6e13 100644
--- a/include/linux/futex.h
+++ b/include/linux/futex.h
@@ -55,7 +55,11 @@ union futex_key {
#ifdef CONFIG_FUTEX
extern void exit_robust_list(struct task_struct *curr);
extern void exit_pi_state_list(struct task_struct *curr);
+#ifdef CONFIG_HAVE_FUTEX_CMPXCHG
+#define futex_cmpxchg_enabled 1
+#else
extern int futex_cmpxchg_enabled;
+#endif
#else
static inline void exit_robust_list(struct task_struct *curr)
{