Bug 40482

Summary: Synchronic's line disciplines(ppp_synctty, hdlc) can't work with pseudo terminals.
Product: Drivers Reporter: ilya (utdilya)
Component: OtherAssignee: drivers_other
Status: CLOSED INVALID    
Severity: high CC: akpm, alan
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.31-rc5+ Subsystem:
Regression: Yes Bisected commit-id:
Attachments: pty_set_low_latency.patch

Description ilya 2011-08-03 17:50:46 UTC
Created attachment 67422 [details]
pty_set_low_latency.patch

If frames send very fast from one side(master/slave) to other one,
frames merge in one (merge point "flip buffer") and the other side can read only one big frame. But sync line discipline need one frame in one read.

For push one frame to ldisc I propose small patch, but this regression for
commit e043e42bdb66885b3ac10d27a01ccb9972e2b0a3.

I don't find any mutexes in function flush_to_ldisc(), and I think this patch
is true and this function can calling from any context. But I not sure.

Relative commit  86d23a057e718f73adc15e463c643d6e014a19cd.


--- orig/pty.c	2011-07-13 07:29:43.000000000 +0400
+++ work/pty.c	2011-08-03 20:59:01.000000000 +0400
@@ -204,6 +204,7 @@
 	clear_bit(TTY_OTHER_CLOSED, &tty->link->flags);
 	set_bit(TTY_THROTTLED, &tty->flags);
 	retval = 0;
+	tty->low_latency = 1;
 out:
 	return retval;
 }
Comment 1 Andrew Morton 2011-08-26 20:49:47 UTC
Please don't submit patches via bugzilla?

Please resend this patch via email, cc'ing all participants in e043e42bdb66885b3ac10d2, and myself, and linux-kernel@vger.kernel.org, thanks.