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>
This commit is contained in:
parent
e6114fa1d1
commit
77945febbe
1 changed files with 1 additions and 0 deletions
|
@ -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();
|
||||||
|
|
Loading…
Reference in a new issue