diff --git a/arch/um/drivers/chan_kern.c b/arch/um/drivers/chan_kern.c
index 1bb920c0d77aee434a5a926c4ddb6dbc44521b18..36df55ad64c2e1e2fbcbbf5e7a9b5803f9b98478 100644
--- a/arch/um/drivers/chan_kern.c
+++ b/arch/um/drivers/chan_kern.c
@@ -629,7 +629,7 @@ void chan_interrupt(struct list_head *chans, struct work_struct *task,
 		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);