[lkml]   [2009]   [Jun]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[PATCH 6/9] tty: fix sanity check
    From: Alan Cox <>

    The WARN_ON() that was added to tty_reopen can be triggered in the specific
    case of a hangup occurring during a re-open of a tty which is not in the
    middle of being otherwise closed.

    In that case however the WARN() is bogus as we don't hold the neccessary
    locks to make a correct decision.

    The case we should be checking is "if the ldisc is not changing and reopen
    is occuring". We could drop the WARN_ON but for the moment the debug is more
    valuable even if it means taking a mutex as it will find any other cases.

    Signed-off-by: Alan Cox <>

    drivers/char/tty_io.c | 2 ++
    1 files changed, 2 insertions(+), 0 deletions(-)

    diff --git a/drivers/char/tty_io.c b/drivers/char/tty_io.c
    index 939e198..a3afa0c 100644
    --- a/drivers/char/tty_io.c
    +++ b/drivers/char/tty_io.c
    @@ -1263,7 +1263,9 @@ static int tty_reopen(struct tty_struct *tty)
    tty->driver = driver; /* N.B. why do this every time?? */

    + mutex_lock(&tty->ldisc_mutex);
    WARN_ON(!test_bit(TTY_LDISC, &tty->flags));
    + mutex_unlock(&tty->ldisc_mutex);

    return 0;

     \ /
      Last update: 2009-06-16 17:07    [W:0.019 / U:2.212 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site