|
@@ -248,6 +248,8 @@ wait_queue_head_t *bit_waitqueue(void *, int);
|
|
(!__builtin_constant_p(state) || \
|
|
(!__builtin_constant_p(state) || \
|
|
state == TASK_INTERRUPTIBLE || state == TASK_KILLABLE) \
|
|
state == TASK_INTERRUPTIBLE || state == TASK_KILLABLE) \
|
|
|
|
|
|
|
|
+extern void init_wait_entry(wait_queue_t *__wait, int flags);
|
|
|
|
+
|
|
/*
|
|
/*
|
|
* The below macro ___wait_event() has an explicit shadow of the __ret
|
|
* The below macro ___wait_event() has an explicit shadow of the __ret
|
|
* variable when used from the wait_event_*() macros.
|
|
* variable when used from the wait_event_*() macros.
|
|
@@ -266,12 +268,7 @@ wait_queue_head_t *bit_waitqueue(void *, int);
|
|
wait_queue_t __wait; \
|
|
wait_queue_t __wait; \
|
|
long __ret = ret; /* explicit shadow */ \
|
|
long __ret = ret; /* explicit shadow */ \
|
|
\
|
|
\
|
|
- INIT_LIST_HEAD(&__wait.task_list); \
|
|
|
|
- if (exclusive) \
|
|
|
|
- __wait.flags = WQ_FLAG_EXCLUSIVE; \
|
|
|
|
- else \
|
|
|
|
- __wait.flags = 0; \
|
|
|
|
- \
|
|
|
|
|
|
+ init_wait_entry(&__wait, exclusive ? WQ_FLAG_EXCLUSIVE : 0); \
|
|
for (;;) { \
|
|
for (;;) { \
|
|
long __int = prepare_to_wait_event(&wq, &__wait, state);\
|
|
long __int = prepare_to_wait_event(&wq, &__wait, state);\
|
|
\
|
|
\
|