sched/wait: Collapse __wait_event_interruptible_tty()
authorPeter Zijlstra <peterz@infradead.org>
Wed, 2 Oct 2013 09:22:30 +0000 (11:22 +0200)
committerIngo Molnar <mingo@kernel.org>
Fri, 4 Oct 2013 08:16:20 +0000 (10:16 +0200)
Reduce macro complexity by using the new ___wait_event() helper.
No change in behaviour, identical generated code.

Reviewed-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20131002092528.831085521@infradead.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
include/linux/tty.h

index 050372979076c7217af4928efcda1853d64a6436..6e803291028fc4ad804a6f896b2a249e53b7b4ad 100644 (file)
@@ -679,23 +679,10 @@ static inline void tty_wait_until_sent_from_close(struct tty_struct *tty,
 })
 
 #define __wait_event_interruptible_tty(tty, wq, condition, ret)                \
-do {                                                                   \
-       DEFINE_WAIT(__wait);                                            \
-                                                                       \
-       for (;;) {                                                      \
-               prepare_to_wait(&wq, &__wait, TASK_INTERRUPTIBLE);      \
-               if (condition)                                          \
-                       break;                                          \
-               if (signal_pending(current)) {                          \
-                       ret = -ERESTARTSYS;                             \
-                       break;                                          \
-               }                                                       \
-               tty_unlock(tty);                                        \
-               schedule();                                             \
-               tty_lock(tty);                                          \
-       }                                                               \
-       finish_wait(&wq, &__wait);                                      \
-} while (0)
+       ___wait_event(wq, condition, TASK_INTERRUPTIBLE, 0, ret,        \
+                       tty_unlock(tty);                                \
+                       schedule();                                     \
+                       tty_lock(tty))
 
 #ifdef CONFIG_PROC_FS
 extern void proc_tty_register_driver(struct tty_driver *);