The patch titled Subject: wait: add wait_event_lock_irq() interface has been added to the -mm tree. Its filename is wait-add-wait_event_lock_irq-interface-v3.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Lukas Czerner <lczerner@xxxxxxxxxx> Subject: wait: add wait_event_lock_irq() interface v3: swap cmd and schedule so we call cmd before schedule Signed-off-by: Lukas Czerner <lczerner@xxxxxxxxxx> Cc: Neil Brown <neilb@xxxxxxx> Cc: Jens Axboe <axboe@xxxxxxxxx> Cc: Jeff Moyer <jmoyer@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- include/linux/wait.h | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff -puN include/linux/wait.h~wait-add-wait_event_lock_irq-interface-v3 include/linux/wait.h --- a/include/linux/wait.h~wait-add-wait_event_lock_irq-interface-v3 +++ a/include/linux/wait.h @@ -555,14 +555,13 @@ do { \ do { \ DEFINE_WAIT(__wait); \ \ - cmd; \ for (;;) { \ prepare_to_wait(&wq, &__wait, TASK_UNINTERRUPTIBLE); \ if (condition) \ break; \ spin_unlock_irq(&lock); \ - schedule(); \ cmd; \ + schedule(); \ spin_lock_irq(&lock); \ } \ finish_wait(&wq, &__wait); \ @@ -575,8 +574,8 @@ do { \ * taken. * @wq: the waitqueue to wait on * @condition: a C expression for the event to wait for - * @lock: a locked spinlock_t, which will be released before schedule() - * and cmd reacquired afterwards. + * @lock: a locked spinlock_t, which will be released before cmd + * and schedule() and reacquired afterwards. * @cmd: a command which is invoked outside the critical section before * sleep * @@ -588,7 +587,7 @@ do { \ * change the result of the wait condition. * * This is supposed to be called while holding the lock. The lock is - * dropped before going to sleep and invoking the cmd and is reacquired + * dropped before invoking the cmd and going to sleep and is reacquired * afterwards. */ #define wait_event_lock_irq_cmd(wq, condition, lock, cmd) \ @@ -631,7 +630,6 @@ do { \ do { \ DEFINE_WAIT(__wait); \ \ - cmd; \ for (;;) { \ prepare_to_wait(&wq, &__wait, TASK_INTERRUPTIBLE); \ if (condition) \ @@ -641,8 +639,8 @@ do { \ break; \ } \ spin_unlock_irq(&lock); \ - schedule(); \ cmd; \ + schedule(); \ spin_lock_irq(&lock); \ } \ finish_wait(&wq, &__wait); \ @@ -654,8 +652,8 @@ do { \ * be called with the lock taken. * @wq: the waitqueue to wait on * @condition: a C expression for the event to wait for - * @lock: a locked spinlock_t, which will be released before schedule() - * and cmd reacquired afterwards. + * @lock: a locked spinlock_t, which will be released before cmd and + * schedule() and reacquired afterwards. * @cmd: a command which is invoked outside the critical section before * sleep * @@ -667,7 +665,7 @@ do { \ * change the result of the wait condition. * * This is supposed to be called while holding the lock. The lock is - * dropped before going to sleep and invoking the cmd and is reacquired + * dropped before invoking the cmd and going to sleep and is reacquired * afterwards. * * The macro will return -ERESTARTSYS if it was interrupted by a signal _ Patches currently in -mm which might be from lczerner@xxxxxxxxxx are linux-next.patch wait-add-wait_event_lock_irq-interface.patch wait-add-wait_event_lock_irq-interface-fix.patch wait-add-wait_event_lock_irq-interface-v3.patch loop-limit-the-number-of-requests-in-the-bio-list.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html