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

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

diff --git a/queue-4.19/printk-console-allow-to-disable-console-output-by-using-console-or-console-null.patch b/queue-4.19/printk-console-allow-to-disable-console-output-by-using-console-or-console-null.patch
new file mode 100644 (file)
index 0000000..8a21461
--- /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
+@@ -2148,8 +2148,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);
+               return 1;
++      }
+       if (_braille_console_setup(&str, &brl_options))
+               return 1;
index 3f9e5431b3e4a2fdf3b104e9b0f9ee0a3ac1ceb6..093460eae06d0ed3a8d40f55dd10f39484482e82 100644 (file)
@@ -4,3 +4,4 @@ usb-ehci-handshake-cmd_run-instead-of-sts_halt.patch
 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
+printk-console-allow-to-disable-console-output-by-using-console-or-console-null.patch