|
@@ -1052,10 +1052,9 @@ do { \
|
|
|
__ret; \
|
|
|
})
|
|
|
|
|
|
-#define __wait_event_interruptible_lock_irq_timeout(wq_head, condition, \
|
|
|
- lock, timeout) \
|
|
|
+#define __wait_event_lock_irq_timeout(wq_head, condition, lock, timeout, state) \
|
|
|
___wait_event(wq_head, ___wait_cond_timeout(condition), \
|
|
|
- TASK_INTERRUPTIBLE, 0, timeout, \
|
|
|
+ state, 0, timeout, \
|
|
|
spin_unlock_irq(&lock); \
|
|
|
__ret = schedule_timeout(__ret); \
|
|
|
spin_lock_irq(&lock));
|
|
@@ -1089,8 +1088,19 @@ do { \
|
|
|
({ \
|
|
|
long __ret = timeout; \
|
|
|
if (!___wait_cond_timeout(condition)) \
|
|
|
- __ret = __wait_event_interruptible_lock_irq_timeout( \
|
|
|
- wq_head, condition, lock, timeout); \
|
|
|
+ __ret = __wait_event_lock_irq_timeout( \
|
|
|
+ wq_head, condition, lock, timeout, \
|
|
|
+ TASK_INTERRUPTIBLE); \
|
|
|
+ __ret; \
|
|
|
+})
|
|
|
+
|
|
|
+#define wait_event_lock_irq_timeout(wq_head, condition, lock, timeout) \
|
|
|
+({ \
|
|
|
+ long __ret = timeout; \
|
|
|
+ if (!___wait_cond_timeout(condition)) \
|
|
|
+ __ret = __wait_event_lock_irq_timeout( \
|
|
|
+ wq_head, condition, lock, timeout, \
|
|
|
+ TASK_UNINTERRUPTIBLE); \
|
|
|
__ret; \
|
|
|
})
|
|
|
|