BUG: pty.c in linux 2.6.31-rc5+

From: MRU.Ilya
Date: Thu Aug 04 2011 - 02:49:23 EST


Synchronic's line disciplines(ppp_synctty, hdlc) can't work with pseudo terminals.

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 and other things forbidden in not user context,
in function flush_to_ldisc() , and I think this patch
is true and this function can called 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;
}