* 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: > + if (!waiters) > + return -EINVAL; Thanks, Ingo