Commit bb632bc4 authored by Peter Zijlstra's avatar Peter Zijlstra Committed by Ingo Molnar

sched/wait: Change the wait_exclusive control flow

Purely a preparatory patch; it changes the control flow to match what
will soon be generated by generic code so that that patch can be a
unity transform.
Reviewed-by: default avatarOleg Nesterov <oleg@redhat.com>
Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20131002092528.107994763@infradead.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent 2953ef24
...@@ -428,23 +428,24 @@ do { \ ...@@ -428,23 +428,24 @@ do { \
#define __wait_event_interruptible_exclusive(wq, condition, ret) \ #define __wait_event_interruptible_exclusive(wq, condition, ret) \
do { \ do { \
__label__ __out; \
DEFINE_WAIT(__wait); \ DEFINE_WAIT(__wait); \
\ \
for (;;) { \ for (;;) { \
prepare_to_wait_exclusive(&wq, &__wait, \ prepare_to_wait_exclusive(&wq, &__wait, \
TASK_INTERRUPTIBLE); \ TASK_INTERRUPTIBLE); \
if (condition) { \ if (condition) \
finish_wait(&wq, &__wait); \
break; \ break; \
} \
if (signal_pending(current)) { \ if (signal_pending(current)) { \
ret = -ERESTARTSYS; \ ret = -ERESTARTSYS; \
abort_exclusive_wait(&wq, &__wait, \ abort_exclusive_wait(&wq, &__wait, \
TASK_INTERRUPTIBLE, NULL); \ TASK_INTERRUPTIBLE, NULL); \
break; \ goto __out; \
} \ } \
schedule(); \ schedule(); \
} \ } \
finish_wait(&wq, &__wait); \
__out: ; \
} while (0) } while (0)
#define wait_event_interruptible_exclusive(wq, condition) \ #define wait_event_interruptible_exclusive(wq, condition) \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment