summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Felker <dalias@libc.org>2016-04-25 03:01:18 +0000
committerRich Felker <dalias@libc.org>2016-04-28 20:47:48 +0000
commit09facf50a3243f5ea54c863a22f2b1f4ca6b0376 (patch)
tree88da0ea32a9dc14636e0ba451d08e3f486f0e61d
parent02da2d72174c61988eb4456b53f405e3ebdebce4 (diff)
downloadlinux-sh-09facf50a3243f5ea54c863a22f2b1f4ca6b0376.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;