Re: Subject: [PATCH] tty ldisc: Close/Reopen race prevention shouldcheck the proper flag
From: Shachar Shemesh
Date: Sun Jul 08 2012 - 04:59:25 EST
On 07/07/2012 12:24 AM, Greg KH wrote:
On Sun, Jul 01, 2012 at 09:53:19AM +0300, Shachar Shemesh wrote:
From: Shachar Shemesh <shachar@xxxxxxxx>
Commit acfa747b introduced the TTY_HUPPING flag to distinguish
closed TTY from currently closing ones. The test in tty_set_ldisc
still remained pointing at the old flag. This causes pppd to
sometimes lapse into uninterruptible sleep when killed and
restarted.
Signed-off-by: Shachar Shemesh <shachar@xxxxxxxx>
---
Tested with 3.2.20 kernel.
All tabs are converted to spaces and make this patch impossible to apply
:(
Care to try again?
I'm sorry, I'm sending this as an attachment. I've verified that my
mailer sends this as plain text, so it should be okay.
Shachar
diff --git a/drivers/tty/tty_ldisc.c b/drivers/tty/tty_ldisc.c
index 24b95db..a662a24 100644
--- a/drivers/tty/tty_ldisc.c
+++ b/drivers/tty/tty_ldisc.c
@@ -658,7 +658,7 @@ int tty_set_ldisc(struct tty_struct *tty, int ldisc)
goto enable;
}
- if (test_bit(TTY_HUPPED, &tty->flags)) {
+ if (test_bit(TTY_HUPPING, &tty->flags)) {
/* We were raced by the hangup method. It will have stomped
the ldisc data and closed the ldisc down */
clear_bit(TTY_LDISC_CHANGING, &tty->flags);