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 <[email protected]>
---
 kernel/futex.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/kernel/futex.c b/kernel/futex.c
index a5d2e74..ed6f475 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -3131,8 +3131,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;
-- 
2.8.1

Reply via email to