[PATCH] 8xx_io/uart.c
Joakim Tjernlund
joakim.tjernlund at lumentis.se
Tue Feb 11 01:45:41 EST 2003
> The pasting into the console bug is actually caused in
> 'drivers/char/n_tty.c' (standard tty line discipline) by not handling a
> failed call to 'opost(...)' (if returns -1 if tx buffer is full and char
> must be retried) in 'echo_char()'. The pasted data is received fine....just
> the echo fails.
>
Hi again
Thanks to Paul Ruhland I was able to fix my problem with chars getting
lost.
This little patch of mine works really fine for me, I just want to known
if it's a good solution or if something else is to prefer.
Jocke
Index: drivers/char/n_tty.c
===================================================================
RCS file: /home/cvsadmin/cvsroot/kernel/linuxppc/drivers/char/n_tty.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 n_tty.c
--- drivers/char/n_tty.c 1 Nov 2002 13:43:27 -0000 1.1.1.1
+++ drivers/char/n_tty.c 10 Feb 2003 14:38:56 -0000
@@ -186,8 +186,10 @@
static int opost(unsigned char c, struct tty_struct *tty)
{
int space, spaces;
+ unsigned long tmo = jiffies + HZ/10;
- space = tty->driver.write_room(tty);
+ while(!(space = tty->driver.write_room(tty)) && !time_after(jiffies, tmo))
+ cond_resched();
if (!space)
return -1;
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
More information about the Linuxppc-embedded
mailing list