Commit b80ea0e8 authored by John Ogness's avatar John Ogness Committed by Petr Mladek
Browse files

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: default avatarJohn Ogness <john.ogness@linutronix.de>
Reviewed-by: default avatarPetr Mladek <pmladek@suse.com>
Signed-off-by: default avatarPetr Mladek <pmladek@suse.com>
Link: https://lore.kernel.org/r/20221116162152.193147-6-john.ogness@linutronix.de
parent 11457036
Loading
Loading
Loading
Loading
+14 −9
Original line number Diff line number Diff line
@@ -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