sched/wait: Change timeout logic
authorPeter Zijlstra <peterz@infradead.org>
Wed, 2 Oct 2013 09:22:19 +0000 (11:22 +0200)
committerIngo Molnar <mingo@kernel.org>
Fri, 4 Oct 2013 08:14:44 +0000 (10:14 +0200)
commit2953ef246b058989657e1e77b36b67566ac06f7b
treea63c8aff38d86f4a7db7eb4e5111dc46076cc268
parent2f2a2b60adf368bacd6acd2116c01e32caf936c4
sched/wait: Change timeout logic

Commit 4c663cf ("wait: fix false timeouts when using
wait_event_timeout()") introduced an additional condition check after
a timeout but there's a few issues;

 - it forgot one site
 - it put the check after the main loop; not at the actual timeout
   check.

Cure both; by wrapping the condition (as suggested by Oleg), this
avoids double evaluation of 'condition' which could be quite big.

Reviewed-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20131002092528.028892896@infradead.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
include/linux/wait.h