提交 77945feb 编写于 作者: A Alan Cox 提交者: 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: NAlan Cox <alan@linux.intel.com>
Acked-by: NArnd Bergmann <arnd@arndb.de>
Cc: stable <stable@kernel.org>
Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
上级 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% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册