diff options
author | Alan Cox <alan@linux.intel.com> | 2010-05-04 21:42:36 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-05-13 21:10:56 +0200 |
commit | 77945febbe60a69e9dcab7f49d33a1aa1e436973 (patch) | |
tree | 1475c6c8215e831904e78a08d1947ffb5a1516ce /drivers/char/tty_io.c | |
parent | serial: mpc52xx_uart: fix null pointer dereference (diff) | |
download | linux-77945febbe60a69e9dcab7f49d33a1aa1e436973.tar.xz linux-77945febbe60a69e9dcab7f49d33a1aa1e436973.zip |
tty: Fix unbalanced BKL handling in error path
Arnd noted:
After the "retry_open:" label, we first get the tty_mutex
and then the BKL. However a the end of tty_open, we jump
back to retry_open with the BKL still held. If we run into
this case, the tty_open function will be left with the BKL
still held.
Signed-off-by: Alan Cox <alan@linux.intel.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/char/tty_io.c')
-rw-r--r-- | drivers/char/tty_io.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/char/tty_io.c b/drivers/char/tty_io.c index 6da962c9b21c..d71f0fc34b46 100644 --- a/drivers/char/tty_io.c +++ b/drivers/char/tty_io.c @@ -1875,6 +1875,7 @@ got_driver: */ if (filp->f_op == &hung_up_tty_fops) filp->f_op = &tty_fops; + unlock_kernel(); goto retry_open; } unlock_kernel(); |