tty: drop the pty lock during hangup
authorAlan Cox <[email protected]>
Wed, 9 May 2012 16:03:19 +0000 (17:03 +0100)
committerGreg Kroah-Hartman <[email protected]>
Wed, 9 May 2012 21:40:27 +0000 (14:40 -0700)
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 <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
drivers/tty/pty.c

index d6fa8429f3ff247527edeccb31d9653b29f0ba54..59af3945ea859c334719fed6a41b4192a30f87f5 100644 (file)
@@ -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);
        }
 }