|
@@ -217,11 +217,17 @@ void tty_wait_until_sent(struct tty_struct *tty, long timeout)
|
|
|
#endif
|
|
|
if (!timeout)
|
|
|
timeout = MAX_SCHEDULE_TIMEOUT;
|
|
|
+
|
|
|
if (wait_event_interruptible_timeout(tty->write_wait,
|
|
|
- !tty_chars_in_buffer(tty), timeout) >= 0) {
|
|
|
- if (tty->ops->wait_until_sent)
|
|
|
- tty->ops->wait_until_sent(tty, timeout);
|
|
|
+ !tty_chars_in_buffer(tty), timeout) < 0) {
|
|
|
+ return;
|
|
|
}
|
|
|
+
|
|
|
+ if (timeout == MAX_SCHEDULE_TIMEOUT)
|
|
|
+ timeout = 0;
|
|
|
+
|
|
|
+ if (tty->ops->wait_until_sent)
|
|
|
+ tty->ops->wait_until_sent(tty, timeout);
|
|
|
}
|
|
|
EXPORT_SYMBOL(tty_wait_until_sent);
|
|
|
|