aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/wait.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/wait.h')
-rw-r--r--include/linux/wait.h20
1 files changed, 15 insertions, 5 deletions
diff --git a/include/linux/wait.h b/include/linux/wait.h
index d9f131ecf708..ed7c122cb31f 100644
--- a/include/linux/wait.h
+++ b/include/linux/wait.h
@@ -1052,10 +1052,9 @@ do { \
1052 __ret; \ 1052 __ret; \
1053}) 1053})
1054 1054
1055#define __wait_event_interruptible_lock_irq_timeout(wq_head, condition, \ 1055#define __wait_event_lock_irq_timeout(wq_head, condition, lock, timeout, state) \
1056 lock, timeout) \
1057 ___wait_event(wq_head, ___wait_cond_timeout(condition), \ 1056 ___wait_event(wq_head, ___wait_cond_timeout(condition), \
1058 TASK_INTERRUPTIBLE, 0, timeout, \ 1057 state, 0, timeout, \
1059 spin_unlock_irq(&lock); \ 1058 spin_unlock_irq(&lock); \
1060 __ret = schedule_timeout(__ret); \ 1059 __ret = schedule_timeout(__ret); \
1061 spin_lock_irq(&lock)); 1060 spin_lock_irq(&lock));
@@ -1089,8 +1088,19 @@ do { \
1089({ \ 1088({ \
1090 long __ret = timeout; \ 1089 long __ret = timeout; \
1091 if (!___wait_cond_timeout(condition)) \ 1090 if (!___wait_cond_timeout(condition)) \
1092 __ret = __wait_event_interruptible_lock_irq_timeout( \ 1091 __ret = __wait_event_lock_irq_timeout( \
1093 wq_head, condition, lock, timeout); \ 1092 wq_head, condition, lock, timeout, \
1093 TASK_INTERRUPTIBLE); \
1094 __ret; \
1095})
1096
1097#define wait_event_lock_irq_timeout(wq_head, condition, lock, timeout) \
1098({ \
1099 long __ret = timeout; \
1100 if (!___wait_cond_timeout(condition)) \
1101 __ret = __wait_event_lock_irq_timeout( \
1102 wq_head, condition, lock, timeout, \
1103 TASK_UNINTERRUPTIBLE); \
1094 __ret; \ 1104 __ret; \
1095}) 1105})
1096 1106