]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 9 Nov 2021 16:16:07 +0000 (17:16 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 9 Nov 2021 16:16:07 +0000 (17:16 +0100)
added patches:
printk-console-allow-to-disable-console-output-by-using-console-or-console-null.patch

queue-5.10/printk-console-allow-to-disable-console-output-by-using-console-or-console-null.patch [new file with mode: 0644]
queue-5.10/series

diff --git a/queue-5.10/printk-console-allow-to-disable-console-output-by-using-console-or-console-null.patch b/queue-5.10/printk-console-allow-to-disable-console-output-by-using-console-or-console-null.patch
new file mode 100644 (file)
index 0000000..3e9787c
--- /dev/null
@@ -0,0 +1,62 @@
+From 3cffa06aeef7ece30f6b5ac0ea51f264e8fea4d0 Mon Sep 17 00:00:00 2001
+From: Petr Mladek <pmladek@suse.com>
+Date: Wed, 11 Nov 2020 14:54:50 +0100
+Subject: printk/console: Allow to disable console output by using console="" or console=null
+
+From: Petr Mladek <pmladek@suse.com>
+
+commit 3cffa06aeef7ece30f6b5ac0ea51f264e8fea4d0 upstream.
+
+The commit 48021f98130880dd74 ("printk: handle blank console arguments
+passed in.") prevented crash caused by empty console= parameter value.
+
+Unfortunately, this value is widely used on Chromebooks to disable
+the console output. The above commit caused performance regression
+because the messages were pushed on slow console even though nobody
+was watching it.
+
+Use ttynull driver explicitly for console="" and console=null
+parameters. It has been created for exactly this purpose.
+
+It causes that preferred_console is set. As a result, ttySX and ttyX
+are not used as a fallback. And only ttynull console gets registered by
+default.
+
+It still allows to register other consoles either by additional console=
+parameters or SPCR. It prevents regression because it worked this way even
+before. Also it is a sane semantic. Preventing output on all consoles
+should be done another way, for example, by introducing mute_console
+parameter.
+
+Link: https://lore.kernel.org/r/20201006025935.GA597@jagdpanzerIV.localdomain
+Suggested-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
+Reviewed-by: Guenter Roeck <linux@roeck-us.net>
+Tested-by: Guenter Roeck <linux@roeck-us.net>
+Acked-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
+Signed-off-by: Petr Mladek <pmladek@suse.com>
+Link: https://lore.kernel.org/r/20201111135450.11214-3-pmladek@suse.com
+Cc: Yi Fan <yfa@google.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ kernel/printk/printk.c |    9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+--- a/kernel/printk/printk.c
++++ b/kernel/printk/printk.c
+@@ -2213,8 +2213,15 @@ static int __init console_setup(char *st
+       char *s, *options, *brl_options = NULL;
+       int idx;
+-      if (str[0] == 0)
++      /*
++       * console="" or console=null have been suggested as a way to
++       * disable console output. Use ttynull that has been created
++       * for exacly this purpose.
++       */
++      if (str[0] == 0 || strcmp(str, "null") == 0) {
++              __add_preferred_console("ttynull", 0, NULL, NULL, true);
+               return 1;
++      }
+       if (_braille_console_setup(&str, &brl_options))
+               return 1;
index 7af153232eae9dbbedb7fe4aa3acf3365b2fd6e9..290ab61b47807b2c849181052a7cc998e21d6be0 100644 (file)
@@ -7,3 +7,4 @@ usb-gadget-mark-usb_fsl_qe-broken-on-64-bit.patch
 usb-musb-balance-list-entry-in-musb_gadget_queue.patch
 usb-storage-add-compatibility-quirk-flags-for-iodd-2531-2541.patch
 binder-don-t-detect-sender-target-during-buffer-cleanup.patch
+printk-console-allow-to-disable-console-output-by-using-console-or-console-null.patch