mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 03:40:35 +09:00
printk: fix exclusive_console replaying
[ Upstream commitdef97da136] Commitf92b070f2d("printk: Do not miss new messages when replaying the log") introduced a new variable @exclusive_console_stop_seq to store when an exclusive console should stop printing. It should be set to the @console_seq value at registration. However, @console_seq is previously set to @syslog_seq so that the exclusive console knows where to begin. This results in the exclusive console immediately reactivating all the other consoles and thus repeating the messages for those consoles. Set @console_seq after @exclusive_console_stop_seq has stored the current @console_seq value. Fixes:f92b070f2d("printk: Do not miss new messages when replaying the log") Change-Id: Ibea8f5ee2c1a5fc77f46ea11e8769c2d3aa418d0 Link: http://lkml.kernel.org/r/20191219115322.31160-1-john.ogness@linutronix.de Cc: Steven Rostedt <rostedt@goodmis.org> Cc: linux-kernel@vger.kernel.org Signed-off-by: John Ogness <john.ogness@linutronix.de> Acked-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com> Signed-off-by: Petr Mladek <pmladek@suse.com> Signed-off-by: Sasha Levin <sashal@kernel.org> Signed-off-by: Tao Huang <huangtao@rock-chips.com>
This commit is contained in:
@@ -2759,8 +2759,6 @@ void register_console(struct console *newcon)
|
||||
* for us.
|
||||
*/
|
||||
logbuf_lock_irqsave(flags);
|
||||
console_seq = syslog_seq;
|
||||
console_idx = syslog_idx;
|
||||
/*
|
||||
* We're about to replay the log buffer. Only do this to the
|
||||
* just-registered console to avoid excessive message spam to
|
||||
@@ -2772,6 +2770,8 @@ void register_console(struct console *newcon)
|
||||
*/
|
||||
exclusive_console = newcon;
|
||||
exclusive_console_stop_seq = console_seq;
|
||||
console_seq = syslog_seq;
|
||||
console_idx = syslog_idx;
|
||||
logbuf_unlock_irqrestore(flags);
|
||||
}
|
||||
console_unlock();
|
||||
|
||||
Reference in New Issue
Block a user