On 04/14/2011 01:43 PM, Eric Dumazet wrote: > Le jeudi 14 avril 2011 à 13:39 -0700, Darren Hart a écrit : >> The FLAGS_HAS_TIMEOUT flag was not getting set, causing the restart_block to >> restart futex_wait() without a timeout after a signal. >> >> Commit b41277dc7a18ee332d in 2.6.38 introduced the regression by accidentally >> removing the the FLAGS_HAS_TIMEOUT assignment from futex_wait() during the >> setup >> of the restart block. Restore the originaly behavior. >> >> Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=32922 >> >> V2: Added references to commit message. >> V3: Set flag during restart block instead of do_futex() >> >> Signed-off-by: Darren Hart <[email protected]> >> Reported-by: Tim Smith <[email protected]> >> Reported-by: Torsten Hilbrich <[email protected]> >> Cc: Thomas Gleixner <[email protected]> >> Cc: Peter Zijlstra <[email protected]> >> Cc: Ingo Molnar <[email protected]> >> CC: Eric Dumazet <[email protected]> >> CC: John Kacur <[email protected]> >> --- >> kernel/futex.c | 1 + >> 1 files changed, 1 insertions(+), 0 deletions(-) >> >> diff --git a/kernel/futex.c b/kernel/futex.c >> index bda4157..9d9c476 100644 >> --- a/kernel/futex.c >> +++ b/kernel/futex.c >> @@ -1887,6 +1887,7 @@ retry: >> restart->futex.time = abs_time->tv64; >> restart->futex.bitset = bitset; >> restart->futex.flags = flags; >> + flags |= FLAGS_HAS_TIMEOUT; >> >> ret = -ERESTART_RESTARTBLOCK; >> > > > Hmmm, I am sorry but this wont work... please try : > > - restart->futex.flags = flags; > + restart->futex.flags = flags | FLAGS_HAS_TIMEOUT;
Ah crud... now that's just embarrassing... resending. -- Darren Hart Intel Open Source Technology Center Yocto Project - Linux Kernel _______________________________________________ stable mailing list [email protected] http://linux.kernel.org/mailman/listinfo/stable
