On Thu, 25 Jan 2018, Jiri Slaby wrote: > On 01/25/2018, 03:03 PM, Thomas Gleixner wrote: > > On Thu, 25 Jan 2018, Jiri Slaby wrote: > >> On 01/22/2018, 09:44 AM, Greg Kroah-Hartman wrote: > >>> + if (nr_wake < 0 || nr_requeue < 0) > >>> + return -EINVAL; > >> > >> This breaks strace's test suite on 4.14.15 (and is present in upstream > >> obviously too): > >> futex(0x7ff568b44ffc, 0x3, 0xfacefeed, 0xbadda7a0ca7b100d, > >> 0x7ff568b44ffc, 0x9caffee1) = -1: Invalid argument > > > > And why the hell is strace expecting this to be valid? > > You ought to ask somebody else, I was confused the very same way: > > My FIX: > https://github.com/strace/strace/pull/16/commits/777587ea509481666274df88671949b390f05cc3 > > Their NACK: > https://github.com/strace/strace/pull/16#issuecomment-341614984 https://github.com/strace/strace/commit/79d10dfc20985225e4ea044d3875c4cea09053d7 Update futex test in accordance with kernel's v4.15-rc7-202-gfbe0e83 * futex.c (VALP, VALP_PR, VAL2P, VAL2P_PR): New macro definitions. (main): Allow EINVAL on *REQUEUE* checks with VAL/VAL2 with higher bit being set, check that the existing behaviour preserved with VALP/VAL2P where higher bit is unset. So what's the problem? Thanks, tglx