summaryrefslogtreecommitdiffstats
path: root/debian/patches-rt/0077-printk-Make-static-printk-buffers-available-to-nbcon.patch
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--debian/patches-rt/0077-printk-Make-static-printk-buffers-available-to-nbcon.patch65
1 files changed, 65 insertions, 0 deletions
diff --git a/debian/patches-rt/0077-printk-Make-static-printk-buffers-available-to-nbcon.patch b/debian/patches-rt/0077-printk-Make-static-printk-buffers-available-to-nbcon.patch
new file mode 100644
index 000000000..f3fbb6a82
--- /dev/null
+++ b/debian/patches-rt/0077-printk-Make-static-printk-buffers-available-to-nbcon.patch
@@ -0,0 +1,65 @@
+From: John Ogness <john.ogness@linutronix.de>
+Date: Sat, 16 Sep 2023 21:26:02 +0206
+Subject: [PATCH 077/134] printk: Make static printk buffers available to nbcon
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.6/older/patches-6.6.7-rt18.tar.xz
+
+The nbcon boot consoles also need printk buffers that are available
+very early. Since the nbcon boot consoles will also be serialized
+by the console_lock, they can use the same static printk buffers
+that the legacy consoles are using.
+
+Make the legacy static printk buffers available outside of printk.c
+so they can be used by nbcon.c.
+
+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/20230916192007.608398-4-john.ogness@linutronix.de
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/printk/internal.h | 2 ++
+ kernel/printk/printk.c | 13 +++++++++----
+ 2 files changed, 11 insertions(+), 4 deletions(-)
+
+--- a/kernel/printk/internal.h
++++ b/kernel/printk/internal.h
+@@ -86,6 +86,8 @@ static inline void nbcon_cleanup(struct
+
+ #endif /* CONFIG_PRINTK */
+
++extern struct printk_buffers printk_shared_pbufs;
++
+ /**
+ * struct printk_buffers - Buffers to read/format/output printk messages.
+ * @outbuf: After formatting, contains text to output.
+--- a/kernel/printk/printk.c
++++ b/kernel/printk/printk.c
+@@ -2847,6 +2847,13 @@ static bool printk_get_next_message(stru
+ }
+
+ /*
++ * Used as the printk buffers for non-panic, serialized console printing.
++ * This is for legacy (!CON_NBCON) as well as all boot (CON_BOOT) consoles.
++ * Its usage requires the console_lock held.
++ */
++struct printk_buffers printk_shared_pbufs;
++
++/*
+ * Print one record for the given console. The record printed is whatever
+ * record is the next available record for the given console.
+ *
+@@ -2863,12 +2870,10 @@ static bool printk_get_next_message(stru
+ */
+ static bool console_emit_next_record(struct console *con, bool *handover, int cookie)
+ {
+- static struct printk_buffers pbufs;
+-
+ bool is_extended = console_srcu_read_flags(con) & CON_EXTENDED;
+- char *outbuf = &pbufs.outbuf[0];
++ char *outbuf = &printk_shared_pbufs.outbuf[0];
+ struct printk_message pmsg = {
+- .pbufs = &pbufs,
++ .pbufs = &printk_shared_pbufs,
+ };
+ unsigned long flags;
+