mirror of https://gitee.com/openkylin/linux.git
tty: fix sanity check
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> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
762faaed91
commit
1aa4bed82a
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue