aboutsummaryrefslogtreecommitdiffstats
path: root/features/rt/printk-console-remove-unnecessary-safe-buffer-usage.patch
diff options
context:
space:
mode:
Diffstat (limited to 'features/rt/printk-console-remove-unnecessary-safe-buffer-usage.patch')
-rw-r--r--features/rt/printk-console-remove-unnecessary-safe-buffer-usage.patch47
1 files changed, 47 insertions, 0 deletions
diff --git a/features/rt/printk-console-remove-unnecessary-safe-buffer-usage.patch b/features/rt/printk-console-remove-unnecessary-safe-buffer-usage.patch
new file mode 100644
index 00000000..e6861260
--- /dev/null
+++ b/features/rt/printk-console-remove-unnecessary-safe-buffer-usage.patch
@@ -0,0 +1,47 @@
+From 158a782478bdf789c7a1797b742fdfb446e27dde Mon Sep 17 00:00:00 2001
+From: John Ogness <john.ogness@linutronix.de>
+Date: Wed, 17 Feb 2021 18:28:05 +0100
+Subject: [PATCH 020/191] printk: console: remove unnecessary safe buffer usage
+
+Upon registering a console, safe buffers are activated when setting
+up the sequence number to replay the log. However, these are already
+protected by @console_sem and @syslog_lock. Remove the unnecessary
+safe buffer usage.
+
+Signed-off-by: John Ogness <john.ogness@linutronix.de>
+---
+ kernel/printk/printk.c | 10 +++-------
+ 1 file changed, 3 insertions(+), 7 deletions(-)
+
+diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
+index 15aed1a7bd05..523621889a72 100644
+--- a/kernel/printk/printk.c
++++ b/kernel/printk/printk.c
+@@ -2967,9 +2967,7 @@ void register_console(struct console *newcon)
+ /*
+ * console_unlock(); will print out the buffered messages
+ * for us.
+- */
+- printk_safe_enter_irqsave(flags);
+- /*
++ *
+ * We're about to replay the log buffer. Only do this to the
+ * just-registered console to avoid excessive message spam to
+ * the already-registered consoles.
+@@ -2982,11 +2980,9 @@ void register_console(struct console *newcon)
+ exclusive_console_stop_seq = console_seq;
+
+ /* Get a consistent copy of @syslog_seq. */
+- raw_spin_lock(&syslog_lock);
++ raw_spin_lock_irqsave(&syslog_lock, flags);
+ console_seq = syslog_seq;
+- raw_spin_unlock(&syslog_lock);
+-
+- printk_safe_exit_irqrestore(flags);
++ raw_spin_unlock_irqrestore(&syslog_lock, flags);
+ }
+ console_unlock();
+ console_sysfs_notify();
+--
+2.19.1
+