Re: [PATCH v1 02/14] futex: Extend the FUTEX2 flags

From: Thomas Gleixner
Date: Mon Jul 31 2023 - 12:11:39 EST


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