On Fri, 4 Sep 2009, Linus Torvalds wrote: > > How about something like this? It's way too anal - it says that we can > only write data if there's enough space to always push it all the way to > the receive buffer (including all the data that was already buffered up, > ie the "memory_used" part). But if it finally makes the problem go away, > we have another clue. I forgot to actually include the patch. Duh. And again - UNTESTED. Maybe this makes the buffering _too_ small (the 'memory_used' thing is not really counted in bytes buffered, it's counted in how much buffer space we've allocated) and things break even worse and pty's don't work at all. But I think it might work. Linus --- drivers/char/pty.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/char/pty.c b/drivers/char/pty.c index d083c73..139fa5a 100644 --- a/drivers/char/pty.c +++ b/drivers/char/pty.c @@ -91,7 +91,7 @@ static void pty_unthrottle(struct tty_struct *tty) static int pty_space(struct tty_struct *to) { - int n = 8192 - to->buf.memory_used; + int n = to->receive_room - to->buf.memory_used; if (n < 0) return 0; return n; -- To unsubscribe from this list: send the line "unsubscribe kernel-testers" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html