From: Greg Kroah-Hartman Date: Fri, 24 Feb 2012 21:55:54 +0000 (-0800) Subject: Revert "TTY: get rid of BTM around devpts_*" X-Git-Tag: MMI-PSA29.97-13-9~17267^2~105 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=0ef1698e4d6282a1665207c40b115ec78fceda9b;p=GitHub%2FMotorolaMobilityLLC%2Fkernel-slsi.git Revert "TTY: get rid of BTM around devpts_*" This reverts commit d3bda5298aad98c7a27678bdd0dd9d008ab9e685. Sasha reported that this causes problems, so revert it. Cc: Sasha Levin Cc: Jiri Slaby Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/tty/pty.c b/drivers/tty/pty.c index 39afd045f8ef..ddec9f3c3396 100644 --- a/drivers/tty/pty.c +++ b/drivers/tty/pty.c @@ -54,8 +54,8 @@ static void pty_close(struct tty_struct *tty, struct file *filp) wake_up_interruptible(&tty->link->write_wait); if (tty->driver->subtype == PTY_TYPE_MASTER) { set_bit(TTY_OTHER_CLOSED, &tty->flags); - tty_unlock(); devpts_pty_kill(tty->link); + tty_unlock(); tty_vhangup(tty->link); tty_lock(); } @@ -613,7 +613,9 @@ static int ptmx_open(struct inode *inode, struct file *filp) return retval; /* find a device that is not in use. */ + tty_lock(); index = devpts_new_index(inode); + tty_unlock(); if (index < 0) { retval = index; goto err_file; @@ -648,8 +650,8 @@ err_release: tty_release(inode, filp); return retval; out: - tty_unlock(); devpts_kill_index(inode, index); + tty_unlock(); err_file: tty_free_file(filp); return retval; diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c index ea7ebe22a16c..44736f9e61d7 100644 --- a/drivers/tty/tty_io.c +++ b/drivers/tty/tty_io.c @@ -1789,11 +1789,11 @@ int tty_release(struct inode *inode, struct file *filp) * the slots and preserving the termios structure. */ release_tty(tty, idx); - tty_unlock(); /* Make this pty number available for reallocation */ if (devpts) devpts_kill_index(inode, idx); + tty_unlock(); return 0; }