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

    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 <alan@linux.intel.com>
    ---

    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->count++;
    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.023 / U:0.320 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site