diff options
Diffstat (limited to '')
-rw-r--r-- | debian/patches-rt/0007-printk-Properly-deal-with-nbcon-consoles-on-seq-init.patch | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/debian/patches-rt/0007-printk-Properly-deal-with-nbcon-consoles-on-seq-init.patch b/debian/patches-rt/0007-printk-Properly-deal-with-nbcon-consoles-on-seq-init.patch deleted file mode 100644 index cc54d0652e..0000000000 --- a/debian/patches-rt/0007-printk-Properly-deal-with-nbcon-consoles-on-seq-init.patch +++ /dev/null @@ -1,116 +0,0 @@ -From: John Ogness <john.ogness@linutronix.de> -Date: Wed, 22 Nov 2023 11:23:43 +0000 -Subject: [PATCH 07/48] printk: Properly deal with nbcon consoles on seq init -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.8/older/patches-6.8.2-rt11.tar.xz - -If a non-boot console is registering and boot consoles exist, the -consoles are flushed before being unregistered. This allows the -non-boot console to continue where the boot console left off. - -If for whatever reason flushing fails, the lowest seq found from -any of the enabled boot consoles is used. Until now con->seq was -checked. However, if it is an nbcon boot console, the function -nbcon_seq_read() must be used to read seq because con->seq is -not updated for nbcon consoles. - -Check if it is an nbcon boot console and if so call -nbcon_seq_read() to read seq. - -Also setup the nbcon sequence number and reset the legacy -sequence number from register_console() (rather than in -nbcon_init() and nbcon_seq_force()). This removes all legacy -sequence handling from nbcon.c so the code is easier to follow -and maintain. - -Signed-off-by: John Ogness <john.ogness@linutronix.de> -Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> ---- - kernel/printk/nbcon.c | 7 +------ - kernel/printk/printk.c | 29 ++++++++++++++++++++++++----- - 2 files changed, 25 insertions(+), 11 deletions(-) - ---- a/kernel/printk/nbcon.c -+++ b/kernel/printk/nbcon.c -@@ -172,9 +172,6 @@ void nbcon_seq_force(struct console *con - u64 valid_seq = max_t(u64, seq, prb_first_valid_seq(prb)); - - atomic_long_set(&ACCESS_PRIVATE(con, nbcon_seq), __u64seq_to_ulseq(valid_seq)); -- -- /* Clear con->seq since nbcon consoles use con->nbcon_seq instead. */ -- con->seq = 0; - } - - /** -@@ -964,8 +961,6 @@ bool nbcon_alloc(struct console *con) - * - * nbcon_alloc() *must* be called and succeed before this function - * is called. -- * -- * This function expects that the legacy @con->seq has been set. - */ - void nbcon_init(struct console *con) - { -@@ -974,7 +969,7 @@ void nbcon_init(struct console *con) - /* nbcon_alloc() must have been called and successful! */ - BUG_ON(!con->pbufs); - -- nbcon_seq_force(con, con->seq); -+ nbcon_seq_force(con, 0); - nbcon_state_set(con, &state); - } - ---- a/kernel/printk/printk.c -+++ b/kernel/printk/printk.c -@@ -3353,6 +3353,7 @@ static void try_enable_default_console(s - newcon->flags |= CON_CONSDEV; - } - -+/* Set @newcon->seq to the first record this console should print. */ - static void console_init_seq(struct console *newcon, bool bootcon_registered) - { - struct console *con; -@@ -3401,11 +3402,20 @@ static void console_init_seq(struct cons - - newcon->seq = prb_next_seq(prb); - for_each_console(con) { -- if ((con->flags & CON_BOOT) && -- (con->flags & CON_ENABLED) && -- con->seq < newcon->seq) { -- newcon->seq = con->seq; -+ u64 seq; -+ -+ if (!((con->flags & CON_BOOT) && -+ (con->flags & CON_ENABLED))) { -+ continue; - } -+ -+ if (con->flags & CON_NBCON) -+ seq = nbcon_seq_read(con); -+ else -+ seq = con->seq; -+ -+ if (seq < newcon->seq) -+ newcon->seq = seq; - } - } - -@@ -3522,9 +3532,18 @@ void register_console(struct console *ne - newcon->dropped = 0; - console_init_seq(newcon, bootcon_registered); - -- if (newcon->flags & CON_NBCON) -+ if (newcon->flags & CON_NBCON) { - nbcon_init(newcon); - -+ /* -+ * nbcon consoles have their own sequence counter. The legacy -+ * sequence counter is reset so that it is clear it is not -+ * being used. -+ */ -+ nbcon_seq_force(newcon, newcon->seq); -+ newcon->seq = 0; -+ } -+ - /* - * Put this console in the list - keep the - * preferred driver at the head of the list. |