summaryrefslogtreecommitdiffstats
path: root/drivers/tty
diff options
context:
space:
mode:
authorAlan Cox <alan@linux.intel.com>2012-05-09 17:03:19 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-05-09 14:40:27 -0700
commitb1d679afd766cf425ba1cd2a0fd17451bd212f4a (patch)
treee1f46c9c1856c654bd52d9a32d19574754f16e76 /drivers/tty
parentfd11b42e3598779cb25feaefb1d534a39fc35009 (diff)
tty: drop the pty lock during hangup
In theory we don't need it, in practice we are hitting some ill understood deadlock when we don't drop it. The old code dropped it here so we are not undoing anything problematic for pty. If pty could be unloaded it would be a problem but it can't. Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty')
-rw-r--r--drivers/tty/pty.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/tty/pty.c b/drivers/tty/pty.c
index d6fa8429f3f..59af3945ea8 100644
--- a/drivers/tty/pty.c
+++ b/drivers/tty/pty.c
@@ -63,7 +63,9 @@ static void pty_close(struct tty_struct *tty, struct file *filp)
mutex_unlock(&devpts_mutex);
}
#endif
+ tty_unlock(tty);
tty_vhangup(tty->link);
+ tty_lock(tty);
}
}