Thread (19 messages) 19 messages, 6 authors, 2012-05-11

Re: [PATCH 3/3] tty_lock: Localise the lock

From: Sasha Levin <hidden>
Date: 2012-05-07 16:03:31
Also in: lkml

Hi Alan,

On Thu, May 3, 2012 at 11:24 PM, Alan Cox [off-list ref] wrote:
quoted hunk ↗ jump to hunk
diff --git a/drivers/tty/pty.c b/drivers/tty/pty.c
index 5505ffc..d6fa842 100644
--- a/drivers/tty/pty.c
+++ b/drivers/tty/pty.c
@@ -62,9 +63,7 @@ static void pty_close(struct tty_struct *tty, struct file *filp)
                       mutex_unlock(&devpts_mutex);
               }
 #endif
-               tty_unlock();
               tty_vhangup(tty->link);
-               tty_lock();
       }
 }
I don't believe that this change is correct.

Consider the following scenario:

tty_release -> tty_lock -> pty_close -> tty_vhangup -> tty_lock

Which would cause a deadlock.
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help