On Fri, 30 Oct 2015 22:07:24 -0400
Sasha Levin <[email protected]> wrote:

> On 10/30/2015 09:56 PM, Corey Wright wrote:
> > Running applications under GNU Screen causes the 3.18.23 kernel to stall and
> > the application to hang.  Reverting commit af32cc7b, ie "tty: fix stall 
> > caused
> > by missing memory barrier in drivers/tty/n_tty.c", fixes the problem.
> 
> Hi Corey,
> 
> Does doing the same on mainline work for you?

is 4.1.12 close enough (which i already had "on-hand")?
 
it contains a similar commit 614ea4ea and tests successfully (ie no bug).

so the problem appears to be limited to 3.18.23.

thanks for getting me looking at and comparing the two versions!

in 3.18.23 we add a spin_unlock_irqrestore inside the "if (tty->link->packet)"
block, but we already have one outside of the if block.

i'm thinking it accidentally got dragged along when porting the commit from
4.1 to 3.18 (because the one that was added in 3.18.23 is in the same location
as the one already in 4.1).

the below patch fixes the problem and passes the
apt-and-lxc-start-run-under-screen-without-causing-a-stall test.

---------- >8 ----- cut here ----- 8< ----------
Remove extraneous, unmatched spin_unlock_irqrestore() introduced by commit
af32cc7b.

This prevents stalls when running command-line applications under GNU Screen.

Fixes: af32cc7bde63 ("tty: fix stall caused by missing memory barrier in 
drivers/tty/n_tty.c")
Signed-off-by: Corey Wright <[email protected]>

--- linux-3.18.23~/drivers/tty/n_tty.c  2015-10-30 23:46:48.000000000 -0500
+++ linux-3.18.23/drivers/tty/n_tty.c   2015-10-30 23:46:53.821376173 -0500
@@ -364,7 +364,6 @@ static void n_tty_packet_mode_flush(stru
        spin_lock_irqsave(&tty->ctrl_lock, flags);
        if (tty->link->packet) {
                tty->ctrl_status |= TIOCPKT_FLUSHREAD;
-               spin_unlock_irqrestore(&tty->ctrl_lock, flags);
                wake_up_interruptible(&tty->link->read_wait);
        }
        spin_unlock_irqrestore(&tty->ctrl_lock, flags);
---------- >8 ----- cut here ----- 8< ----------

> Thanks,
> Sasha

thank you!

corey
--
[email protected]
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to