summaryrefslogtreecommitdiffstats
path: root/debian/patches-rt/0007-printk-Properly-deal-with-nbcon-consoles-on-seq-init.patch
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--debian/patches-rt/0007-printk-Properly-deal-with-nbcon-consoles-on-seq-init.patch116
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.