lkml.org 
[lkml]   [2009]   [Sep]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [Bug #14015] pty regressed again, breaking expect and gcc's testsuite


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;

\
 
 \ /
  Last update: 2009-10-18 23:28    [from the cache]
©2003-2011 Jasper Spaans