*/
 #define wait_event(wq, condition)                                      \
 do {                                                                   \
+       might_sleep();                                                  \
        if (condition)                                                  \
                break;                                                  \
        __wait_event(wq, condition);                                    \
 #define wait_event_timeout(wq, condition, timeout)                     \
 ({                                                                     \
        long __ret = timeout;                                           \
+       might_sleep();                                                  \
        if (!___wait_cond_timeout(condition))                           \
                __ret = __wait_event_timeout(wq, condition, timeout);   \
        __ret;                                                          \
  */
 #define wait_event_cmd(wq, condition, cmd1, cmd2)                      \
 do {                                                                   \
+       might_sleep();                                                  \
        if (condition)                                                  \
                break;                                                  \
        __wait_event_cmd(wq, condition, cmd1, cmd2);                    \
 #define wait_event_interruptible(wq, condition)                                \
 ({                                                                     \
        int __ret = 0;                                                  \
+       might_sleep();                                                  \
        if (!(condition))                                               \
                __ret = __wait_event_interruptible(wq, condition);      \
        __ret;                                                          \
 #define wait_event_interruptible_timeout(wq, condition, timeout)       \
 ({                                                                     \
        long __ret = timeout;                                           \
+       might_sleep();                                                  \
        if (!___wait_cond_timeout(condition))                           \
                __ret = __wait_event_interruptible_timeout(wq,          \
                                                condition, timeout);    \
 #define wait_event_hrtimeout(wq, condition, timeout)                   \
 ({                                                                     \
        int __ret = 0;                                                  \
+       might_sleep();                                                  \
        if (!(condition))                                               \
                __ret = __wait_event_hrtimeout(wq, condition, timeout,  \
                                               TASK_UNINTERRUPTIBLE);   \
 #define wait_event_interruptible_hrtimeout(wq, condition, timeout)     \
 ({                                                                     \
        long __ret = 0;                                                 \
+       might_sleep();                                                  \
        if (!(condition))                                               \
                __ret = __wait_event_hrtimeout(wq, condition, timeout,  \
                                               TASK_INTERRUPTIBLE);     \
 #define wait_event_interruptible_exclusive(wq, condition)              \
 ({                                                                     \
        int __ret = 0;                                                  \
+       might_sleep();                                                  \
        if (!(condition))                                               \
                __ret = __wait_event_interruptible_exclusive(wq, condition);\
        __ret;                                                          \
 #define wait_event_killable(wq, condition)                             \
 ({                                                                     \
        int __ret = 0;                                                  \
+       might_sleep();                                                  \
        if (!(condition))                                               \
                __ret = __wait_event_killable(wq, condition);           \
        __ret;                                                          \
 static inline int
 wait_on_bit(void *word, int bit, unsigned mode)
 {
+       might_sleep();
        if (!test_bit(bit, word))
                return 0;
        return out_of_line_wait_on_bit(word, bit,
 static inline int
 wait_on_bit_io(void *word, int bit, unsigned mode)
 {
+       might_sleep();
        if (!test_bit(bit, word))
                return 0;
        return out_of_line_wait_on_bit(word, bit,
 static inline int
 wait_on_bit_action(void *word, int bit, wait_bit_action_f *action, unsigned mode)
 {
+       might_sleep();
        if (!test_bit(bit, word))
                return 0;
        return out_of_line_wait_on_bit(word, bit, action, mode);
 static inline int
 wait_on_bit_lock(void *word, int bit, unsigned mode)
 {
+       might_sleep();
        if (!test_and_set_bit(bit, word))
                return 0;
        return out_of_line_wait_on_bit_lock(word, bit, bit_wait, mode);
 static inline int
 wait_on_bit_lock_io(void *word, int bit, unsigned mode)
 {
+       might_sleep();
        if (!test_and_set_bit(bit, word))
                return 0;
        return out_of_line_wait_on_bit_lock(word, bit, bit_wait_io, mode);
 static inline int
 wait_on_bit_lock_action(void *word, int bit, wait_bit_action_f *action, unsigned mode)
 {
+       might_sleep();
        if (!test_and_set_bit(bit, word))
                return 0;
        return out_of_line_wait_on_bit_lock(word, bit, action, mode);
 static inline
 int wait_on_atomic_t(atomic_t *val, int (*action)(atomic_t *), unsigned mode)
 {
+       might_sleep();
        if (atomic_read(val) == 0)
                return 0;
        return out_of_line_wait_on_atomic_t(val, action, mode);