pty: Fix lock inversion
PATCH 1/1 pty: Fix lock inversion
From: Alan Cox <[email protected]>
The ptmx_open path takes the tty and devpts locks in the wrong order because tty_init_dev locks and returns a locked tty. As far as I can tell this is actually safe anyway because the tty being returned is new so nobody can get a reference to lock it at this point.
However we don't even need the devpts lock at this point, it's only held as a byproduct of the way the locks were pushe down.
Signed-off-by Alan Cox <[email protected]>
---
drivers/tty/pty.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-)
drivers/tty/pty.c +0 -2
@@ -633,7 +633,6 @@ static int ptmx_open(struct inode *inode, struct file *filp)mutex_unlock (&devpts_mutex);mutex_lock (&tty_mutex); -mutex_lock (&devpts_mutex); tty =tty_init_dev (ptm_driver, index);if (IS_ERR (tty)) {
@@ -643,7 +642,6 @@ static int ptmx_open(struct inode *inode, struct file *filp)/* The tty returned here is locked so we can safely drop the mutex */ -mutex_unlock (&devpts_mutex);mutex_unlock (&tty_mutex);set_bit (TTY_PTY_LOCK , &tty->flags);/* LOCK THE SLAVE */