On Fri, Jul 21 2023 at 12:22, Peter Zijlstra wrote: > +#define FUTEX2_8 0x00 > +#define FUTEX2_16 0x01 > #define FUTEX2_32 0x02 > - /* 0x04 */ > +#define FUTEX2_64 0x03 > +#define FUTEX2_NUMA 0x04 > /* 0x08 */ > /* 0x10 */ > /* 0x20 */ > --- a/kernel/futex/syscalls.c > +++ b/kernel/futex/syscalls.c > @@ -183,7 +183,7 @@ SYSCALL_DEFINE6(futex, u32 __user *, uad > return do_futex(uaddr, op, val, tp, uaddr2, (unsigned long)utime, val3); > } > > -#define FUTEX2_MASK (FUTEX2_32 | FUTEX2_PRIVATE) > +#define FUTEX2_MASK (FUTEX2_64 | FUTEX2_PRIVATE) > > /** > * futex_parse_waitv - Parse a waitv array from userspace > @@ -207,7 +207,12 @@ static int futex_parse_waitv(struct fute > if ((aux.flags & ~FUTEX2_MASK) || aux.__reserved) > return -EINVAL; With the above aux.flags with FUTEX2_32 set will result in -EINVAL. I don't think that's intentional. Thanks, tglx