* the ringbuffer empty. So in practice we should be ok, but it's
         * something to be aware of when touching this code.
         */
-       if (until == 0)
-               aio_read_events(ctx, min_nr, nr, event, &ret);
-       else
-               wait_event_interruptible_hrtimeout(ctx->wait,
-                               aio_read_events(ctx, min_nr, nr, event, &ret),
-                               until);
+       wait_event_interruptible_hrtimeout(ctx->wait,
+                       aio_read_events(ctx, min_nr, nr, event, &ret),
+                       until);
        return ret;
 }
 
 
 ({                                                                             \
        int __ret = 0;                                                          \
        might_sleep();                                                          \
-       if (!(condition))                                                       \
+       if (!(condition) && (timeout))                                          \
                __ret = __wait_event_hrtimeout(wq_head, condition, timeout,     \
                                               TASK_UNINTERRUPTIBLE);           \
        __ret;                                                                  \
 ({                                                                             \
        long __ret = 0;                                                         \
        might_sleep();                                                          \
-       if (!(condition))                                                       \
+       if (!(condition) && (timeout))                                          \
                __ret = __wait_event_hrtimeout(wq, condition, timeout,          \
                                               TASK_INTERRUPTIBLE);             \
        __ret;                                                                  \