summaryrefslogtreecommitdiffstats
path: root/kernel/printk/printk.c
diff options
context:
space:
mode:
authorJohn Ogness <john.ogness@linutronix.de>2022-11-16 17:21:17 +0100
committerPetr Mladek <pmladek@suse.com>2022-12-02 11:24:59 +0100
commitb80ea0e81b3954e4c519e0c257b095e77cf94d86 (patch)
treeaa41fb81e727a4a691fb2ad7cf2792f46c188d8b /kernel/printk/printk.c
parentprintk: register_console: use "registered" for variable names (diff)
downloadlinux-b80ea0e81b3954e4c519e0c257b095e77cf94d86.tar.xz
linux-b80ea0e81b3954e4c519e0c257b095e77cf94d86.zip
printk: move @seq initialization to helper
The code to initialize @seq for a new console needs to consider more factors when choosing an initial value. Move the code into a helper function console_init_seq() "as is" so this code can be expanded without causing register_console() to become too long. A later commit will implement the additional code. Signed-off-by: John Ogness <john.ogness@linutronix.de> Reviewed-by: Petr Mladek <pmladek@suse.com> Signed-off-by: Petr Mladek <pmladek@suse.com> Link: https://lore.kernel.org/r/20221116162152.193147-6-john.ogness@linutronix.de
Diffstat (limited to 'kernel/printk/printk.c')
-rw-r--r--kernel/printk/printk.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index 3d449dfb1ed6..31d9d1cf8682 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -3131,6 +3131,19 @@ static void try_enable_default_console(struct console *newcon)
(con->flags & CON_BOOT) ? "boot" : "", \
con->name, con->index, ##__VA_ARGS__)
+static void console_init_seq(struct console *newcon)
+{
+ if (newcon->flags & CON_PRINTBUFFER) {
+ /* Get a consistent copy of @syslog_seq. */
+ mutex_lock(&syslog_lock);
+ newcon->seq = syslog_seq;
+ mutex_unlock(&syslog_lock);
+ } else {
+ /* Begin with next message. */
+ newcon->seq = prb_next_seq(prb);
+ }
+}
+
#define console_first() \
hlist_entry(console_list.first, struct console, node)
@@ -3222,15 +3235,7 @@ void register_console(struct console *newcon)
}
newcon->dropped = 0;
- if (newcon->flags & CON_PRINTBUFFER) {
- /* Get a consistent copy of @syslog_seq. */
- mutex_lock(&syslog_lock);
- newcon->seq = syslog_seq;
- mutex_unlock(&syslog_lock);
- } else {
- /* Begin with next message. */
- newcon->seq = prb_next_seq(prb);
- }
+ console_init_seq(newcon);
/*
* Put this console in the list - keep the