On Fri, Sep 22, 2023 at 11:35:03AM +0200, Ingo Molnar wrote: > > * peterz@xxxxxxxxxxxxx <peterz@xxxxxxxxxxxxx> wrote: > > > --- linux-2.6.orig/kernel/futex/syscalls.c > > +++ linux-2.6/kernel/futex/syscalls.c > > @@ -396,6 +396,44 @@ SYSCALL_DEFINE6(futex_wait, > > return ret; > > } > > > > +/* > > + * sys_futex_requeue - Requeue a waiter from one futex to another > > + * @waiters: array describing the source and destination futex > > + * @flags: unused > > + * @nr_wake: number of futexes to wake > > + * @nr_requeue: number of futexes to requeue > > + * > > + * Identical to the traditional FUTEX_CMP_REQUEUE op, except it is part of the > > + * futex2 family of calls. > > + */ > > + > > +SYSCALL_DEFINE4(futex_requeue, > > + struct futex_waitv __user *, waiters, > > + unsigned int, flags, > > + int, nr_wake, > > + int, nr_requeue) > > +{ > > + struct futex_vector futexes[2]; > > + u32 cmpval; > > + int ret; > > + > > + if (flags) > > + return -EINVAL; > > Small detail, but isn't -ENOSYS the canonical error code for functionality > not yet implemented - which the unused 'flags' ABI is arguably? > > -EINVAL is for recognized but incorrect parameters, such as: IIUC 'unknown flag' falls into the -EINVAL return category. Here we happen to have no known flags, but that should not matter.