Merge tag 'devicetree-fixes-for-4.20-1' of git://git.kernel.org/pub/scm/linux/kernel...
[linux-2.6-block.git] / include / linux / wait.h
index d9f131ecf7081f53417a2dac3cb0f7edf28e7c9f..ed7c122cb31f407f70a36a198d5e6d9ae48c01fa 100644 (file)
@@ -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;                                                                  \
 })