When the tty flip_buf is full, it's a good idea to delay the input
processing for a jiffy, rather than just scheduling the tasklet
immediately.
Signed-off-by: Jeff Dike <[email protected]>
Index: linux-2.6.15/arch/um/drivers/chan_kern.c
===================================================================
--- linux-2.6.15.orig/arch/um/drivers/chan_kern.c 2005-12-25 22:35:58.000000000 -0500
+++ linux-2.6.15/arch/um/drivers/chan_kern.c 2005-12-25 22:42:14.000000000 -0500
@@ -629,7 +629,7 @@ void chan_interrupt(struct list_head *ch
do {
if((tty != NULL) &&
(tty->flip.count >= TTY_FLIPBUF_SIZE)){
- schedule_work(task);
+ schedule_delayed_work(task, 1);
goto out;
}
err = chan->ops->read(chan->fd, &c, chan->data);