mirror of
https://github.com/torvalds/linux.git
synced 2024-11-13 15:41:39 +00:00
n_tty: Ensure reader restarts worker for next reader
A departing reader must restart a flush_to_ldisc() worker _before_ the next reader enters the read loop; this is to avoid the new reader concluding no more i/o is available and prematurely exiting, when the old reader simply hasn't re-started the worker yet. Cc: stable <stable@vger.kernel.org> # 3.12 Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
6ce4eac1f6
commit
42458f41d0
@ -2243,6 +2243,9 @@ static ssize_t n_tty_read(struct tty_struct *tty, struct file *file,
|
||||
if (time)
|
||||
timeout = time;
|
||||
}
|
||||
n_tty_set_room(tty);
|
||||
up_read(&tty->termios_rwsem);
|
||||
|
||||
mutex_unlock(&ldata->atomic_read_lock);
|
||||
remove_wait_queue(&tty->read_wait, &wait);
|
||||
|
||||
@ -2253,8 +2256,6 @@ static ssize_t n_tty_read(struct tty_struct *tty, struct file *file,
|
||||
if (b - buf)
|
||||
retval = b - buf;
|
||||
|
||||
n_tty_set_room(tty);
|
||||
up_read(&tty->termios_rwsem);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user