From: James S. <jsi...@us...> - 2002-02-23 16:44:46
|
Update of /cvsroot/linuxconsole/ruby/linux/kernel In directory usw-pr-cvs1:/tmp/cvs-serv6708/kernel Modified Files: printk.c Log Message: Now we flush individual consoles. Index: printk.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/kernel/printk.c,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- printk.c 23 Jan 2002 23:35:31 -0000 1.25 +++ printk.c 23 Feb 2002 16:44:43 -0000 1.26 @@ -319,7 +319,7 @@ static void call_console_drivers(struct console *con, unsigned long start, unsigned long end) { unsigned long cur_index, start_print; - static int msg_level = -1; + int msg_level = -1; if (((long)(start - end)) > 0) BUG(); @@ -445,6 +445,7 @@ * We own the drivers list. We can drop the lock and * let release_console_sem() print the text */ + con->con_start = con_start; spin_unlock(&console_lock); if ((con->flags & CON_ENABLED) && con->write) { if (!down_trylock(&con->lock)) @@ -452,6 +453,7 @@ } spin_lock(&console_lock); } + con_start = log_end; /* Flush all consoles */ spin_unlock(&console_lock); return printed_len; } @@ -528,11 +530,11 @@ for ( ; ; ) { spin_lock_irqsave(&logbuf_lock, flags); must_wake_klogd |= log_start - log_end; - if (con_start == log_end) + if (con->con_start == log_end) break; /* Nothing to print */ - _con_start = con_start; + _con_start = con->con_start; _log_end = log_end; - con_start = log_end; /* Flush */ + con->con_start = log_end; /* Flush current console */ spin_unlock_irqrestore(&logbuf_lock, flags); call_console_drivers(con, _con_start, _log_end); } |