Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e97733ca authored by Peter Hurley's avatar Peter Hurley Committed by Greg Kroah-Hartman
Browse files

tty: Fix hangup race with TIOCSETD ioctl



The hangup may already have happened; check for that state also.

Signed-off-by: default avatarPeter Hurley <peter@hurleysoftware.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 9fbfa34c
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -546,10 +546,8 @@ int tty_set_ldisc(struct tty_struct *tty, int ldisc)
	old_ldisc = tty->ldisc;
	tty_lock(tty);

	/* FIXME: for testing only */
	WARN_ON(test_bit(TTY_HUPPED, &tty->flags));

	if (test_bit(TTY_HUPPING, &tty->flags)) {
	if (test_bit(TTY_HUPPING, &tty->flags) ||
	    test_bit(TTY_HUPPED, &tty->flags)) {
		/* We were raced by the hangup method. It will have stomped
		   the ldisc data and closed the ldisc down */
		tty_ldisc_enable_pair(tty, o_tty);