summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Felker <dalias@libc.org>2016-04-25 03:01:18 +0000
committerRich Felker <dalias@libc.org>2016-06-08 21:54:05 +0000
commitaf973a6a97424c0c66a5817aa5baa7118308df69 (patch)
treef57e5d343ee24892eda0357f416eb6418805b350
parent9d8d1eb0fc51f8eb4abab3230402edf2ac76f7ab (diff)
downloadlinux-sh-af973a6a97424c0c66a5817aa5baa7118308df69.tar.gz
futex: fix shared futex operations on nommu
The shared get_futex_key code does not work on nommu, but is not needed anyway because it's impossible for a given backing to have multiple distinct virtual addresses on nommu. Simply disable these code paths by refraining from setting FLAG_SHARED when CONFIG_MMU is not enabled. Signed-off-by: Rich Felker <dalias@libc.org>
-rw-r--r--kernel/futex.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/futex.c b/kernel/futex.c
index c20f06f38ef3..446e6adaac3b 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -3150,8 +3150,10 @@ long do_futex(u32 __user *uaddr, int op, u32 val, ktime_t *timeout,
int cmd = op & FUTEX_CMD_MASK;
unsigned int flags = 0;
+#ifdef CONFIG_MMU
if (!(op & FUTEX_PRIVATE_FLAG))
flags |= FLAGS_SHARED;
+#endif
if (op & FUTEX_CLOCK_REALTIME) {
flags |= FLAGS_CLOCKRT;