summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Felker <dalias@libc.org>2016-04-25 03:01:18 +0000
committerRich Felker <dalias@libc.org>2016-07-15 03:47:24 +0000
commitc82ae70d41b74bbfb63688e1a0da5a678076b69c (patch)
treeee796cb8b455ee243d05a8a4e7bb6078177610bd
parent8807432637c82fce15963bafa12354df6bc4fe19 (diff)
downloadlinux-sh-c82ae70d41b74bbfb63688e1a0da5a678076b69c.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 33664f70e2d2..b384f312a65a 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -3158,8 +3158,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;