Commit 77945feb authored by Alan Cox's avatar Alan Cox Committed by Greg Kroah-Hartman

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: default avatarAlan Cox <alan@linux.intel.com>
Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
Cc: stable <stable@kernel.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent e6114fa1
...@@ -1875,6 +1875,7 @@ static int tty_open(struct inode *inode, struct file *filp) ...@@ -1875,6 +1875,7 @@ static int tty_open(struct inode *inode, struct file *filp)
*/ */
if (filp->f_op == &hung_up_tty_fops) if (filp->f_op == &hung_up_tty_fops)
filp->f_op = &tty_fops; filp->f_op = &tty_fops;
unlock_kernel();
goto retry_open; goto retry_open;
} }
unlock_kernel(); unlock_kernel();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment