|
@@ -690,9 +690,6 @@ static void __tty_hangup(struct tty_struct *tty, int exit_session)
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- /* some functions below drop BTM, so we need this bit */
|
|
|
- set_bit(TTY_HUPPING, &tty->flags);
|
|
|
-
|
|
|
/* inuse_filps is protected by the single tty lock,
|
|
|
this really needs to change if we want to flush the
|
|
|
workqueue with the lock held */
|
|
@@ -717,10 +714,6 @@ static void __tty_hangup(struct tty_struct *tty, int exit_session)
|
|
|
while (refs--)
|
|
|
tty_kref_put(tty);
|
|
|
|
|
|
- /*
|
|
|
- * it drops BTM and thus races with reopen
|
|
|
- * we protect the race by TTY_HUPPING
|
|
|
- */
|
|
|
tty_ldisc_hangup(tty);
|
|
|
|
|
|
spin_lock_irq(&tty->ctrl_lock);
|
|
@@ -752,8 +745,6 @@ static void __tty_hangup(struct tty_struct *tty, int exit_session)
|
|
|
* can't yet guarantee all that.
|
|
|
*/
|
|
|
set_bit(TTY_HUPPED, &tty->flags);
|
|
|
- clear_bit(TTY_HUPPING, &tty->flags);
|
|
|
-
|
|
|
tty_unlock(tty);
|
|
|
|
|
|
if (f)
|
|
@@ -1461,8 +1452,7 @@ static int tty_reopen(struct tty_struct *tty)
|
|
|
{
|
|
|
struct tty_driver *driver = tty->driver;
|
|
|
|
|
|
- if (test_bit(TTY_CLOSING, &tty->flags) ||
|
|
|
- test_bit(TTY_HUPPING, &tty->flags))
|
|
|
+ if (test_bit(TTY_CLOSING, &tty->flags))
|
|
|
return -EIO;
|
|
|
|
|
|
if (driver->type == TTY_DRIVER_TYPE_PTY &&
|