diff options
author | Alan Cox <alan@linux.intel.com> | 2010-05-04 20:42:36 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-05-13 12:10:56 -0700 |
commit | 77945febbe60a69e9dcab7f49d33a1aa1e436973 (patch) | |
tree | 1475c6c8215e831904e78a08d1947ffb5a1516ce /drivers/char | |
parent | e6114fa1d1d6a588766f28081b971047dd3e5def (diff) | |
download | kernel_samsung_crespo-77945febbe60a69e9dcab7f49d33a1aa1e436973.zip kernel_samsung_crespo-77945febbe60a69e9dcab7f49d33a1aa1e436973.tar.gz kernel_samsung_crespo-77945febbe60a69e9dcab7f49d33a1aa1e436973.tar.bz2 |
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')
-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 6da962c..d71f0fc 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(); |