lkml.org 
[lkml]   [2016]   [Jan]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 07/19] n_tty: Fix unsafe reference to "other" ldisc
    Date
    Although n_tty_check_unthrottle() has a valid ldisc reference (since
    the tty core gets the ldisc ref in tty_read() before calling the line
    discipline read() method), it does not have a valid ldisc reference to
    the "other" pty of a pty pair. Since getting an ldisc reference for
    tty->link essentially open-codes tty_wakeup(), just replace with the
    equivalent tty_wakeup().

    Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
    ---
    drivers/tty/n_tty.c | 7 ++-----
    1 file changed, 2 insertions(+), 5 deletions(-)

    diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c
    index e09fd58..90eca26 100644
    --- a/drivers/tty/n_tty.c
    +++ b/drivers/tty/n_tty.c
    @@ -269,16 +269,13 @@ static void n_tty_check_throttle(struct tty_struct *tty)

    static void n_tty_check_unthrottle(struct tty_struct *tty)
    {
    - if (tty->driver->type == TTY_DRIVER_TYPE_PTY &&
    - tty->link->ldisc->ops->write_wakeup == n_tty_write_wakeup) {
    + if (tty->driver->type == TTY_DRIVER_TYPE_PTY) {
    if (chars_in_buffer(tty) > TTY_THRESHOLD_UNTHROTTLE)
    return;
    if (!tty->count)
    return;
    n_tty_kick_worker(tty);
    - n_tty_write_wakeup(tty->link);
    - if (waitqueue_active(&tty->link->write_wait))
    - wake_up_interruptible_poll(&tty->link->write_wait, POLLOUT);
    + tty_wakeup(tty->link);
    return;
    }

    --
    2.7.0
    \
     
     \ /
      Last update: 2016-01-10 06:21    [W:3.584 / U:0.176 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site