diff --git a/drivers/tty/console.c b/drivers/tty/console.c index 230f26fac..58d062d39 100644 --- a/drivers/tty/console.c +++ b/drivers/tty/console.c @@ -206,10 +206,14 @@ int try; /* Reply to the writer if all output is finished or if an error occured. */ if (tp->tty_outleft == 0 || result != OK) { - /* REVIVE is not possible. I/O on memory mapped consoles finishes. */ - tty_reply(tp->tty_outrepcode, tp->tty_outcaller, tp->tty_outproc, - tp->tty_outcum); - tp->tty_outcum = 0; + if(tp->tty_outrepcode == TTY_REVIVE) { + notify(tp->tty_outcaller); + tp->tty_outrevived = 1; + } else { + tty_reply(tp->tty_outrepcode, tp->tty_outcaller, + tp->tty_outproc, tp->tty_outcum); + tp->tty_outcum = 0; + } } return 0;