diff --git a/kernel-i586.config b/kernel-i586.config index 899ddb4..14540d5 100644 --- a/kernel-i586.config +++ b/kernel-i586.config @@ -7969,6 +7969,7 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y # printk and dmesg options # CONFIG_PRINTK_TIME=y +CONFIG_CONSOLE_LOGLEVEL_DEFAULT=3 CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 CONFIG_BOOT_PRINTK_DELAY=y CONFIG_DYNAMIC_DEBUG=y diff --git a/kernel-x86_64.config b/kernel-x86_64.config index a2fd8f3..3627bef 100644 --- a/kernel-x86_64.config +++ b/kernel-x86_64.config @@ -7790,6 +7790,7 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y # printk and dmesg options # CONFIG_PRINTK_TIME=y +CONFIG_CONSOLE_LOGLEVEL_DEFAULT=3 CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 CONFIG_BOOT_PRINTK_DELAY=y CONFIG_DYNAMIC_DEBUG=y diff --git a/kernel.spec b/kernel.spec index 0bc2d01..958af5b 100644 --- a/kernel.spec +++ b/kernel.spec @@ -216,6 +216,7 @@ Patch200: i915_hack_bug_97822.patch # Patches from mainline. Patch300: rt2800-enable-rt3290-unconditionally-on-pci-probe.patch +Patch301: printk-add-Kconfig-option-to-set-default-console-loglevel.patch # Sanitizing kernel memory # We do not use "Patch:" here because apply_patches would always apply it diff --git a/printk-add-Kconfig-option-to-set-default-console-loglevel.patch b/printk-add-Kconfig-option-to-set-default-console-loglevel.patch new file mode 100644 index 0000000..057d4bd --- /dev/null +++ b/printk-add-Kconfig-option-to-set-default-console-loglevel.patch @@ -0,0 +1,87 @@ +From a8cfdc68f6cfc0c7ffc6d664406fe7f06f17eef4 Mon Sep 17 00:00:00 2001 +From: Olof Johansson +Date: Mon, 12 Dec 2016 16:45:56 -0800 +Subject: [PATCH] printk: add Kconfig option to set default console loglevel + +Add a configuration option to set the default console loglevel. This +is, as before, still possible to override at runtime through bootargs +(loglevel=), sysrq and /proc/printk. + +There are cases where adding additional arguments on the commandline is +impractical, and changing the default for the kernel when being built +makes more sense. Provide such a method here, for those who choose to +do so. + +Also, while touching this code, clarify the difference between +MESSAGE_LOGLEVEL_DEFAULT and CONSOLE_LOGLEVEL_DEFAULT. + +Link: http://lkml.kernel.org/r/1479676829-30031-1-git-send-email-olof@lixom.net +Signed-off-by: Olof Johansson +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +--- + include/linux/printk.h | 7 ++++++- + lib/Kconfig.debug | 19 +++++++++++++++++++ + 2 files changed, 25 insertions(+), 1 deletion(-) + +diff --git a/include/linux/printk.h b/include/linux/printk.h +index afe8cce..3472cc6 100644 +--- a/include/linux/printk.h ++++ b/include/linux/printk.h +@@ -50,10 +50,15 @@ static inline const char *printk_skip_headers(const char *buffer) + #define CONSOLE_LOGLEVEL_SILENT 0 /* Mum's the word */ + #define CONSOLE_LOGLEVEL_MIN 1 /* Minimum loglevel we let people use */ + #define CONSOLE_LOGLEVEL_QUIET 4 /* Shhh ..., when booted with "quiet" */ +-#define CONSOLE_LOGLEVEL_DEFAULT 7 /* anything MORE serious than KERN_DEBUG */ + #define CONSOLE_LOGLEVEL_DEBUG 10 /* issue debug messages */ + #define CONSOLE_LOGLEVEL_MOTORMOUTH 15 /* You can't shut this one up */ + ++/* ++ * Default used to be hard-coded at 7, we're now allowing it to be set from ++ * kernel config. ++ */ ++#define CONSOLE_LOGLEVEL_DEFAULT CONFIG_CONSOLE_LOGLEVEL_DEFAULT ++ + extern int console_printk[]; + + #define console_loglevel (console_printk[0]) +diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug +index 9bb7d82..65a619e 100644 +--- a/lib/Kconfig.debug ++++ b/lib/Kconfig.debug +@@ -15,6 +15,21 @@ config PRINTK_TIME + The behavior is also controlled by the kernel command line + parameter printk.time=1. See Documentation/kernel-parameters.txt + ++config CONSOLE_LOGLEVEL_DEFAULT ++ int "Default console loglevel (1-15)" ++ range 1 15 ++ default "7" ++ help ++ Default loglevel to determine what will be printed on the console. ++ ++ Setting a default here is equivalent to passing in loglevel= in ++ the kernel bootargs. loglevel= continues to override whatever ++ value is specified here as well. ++ ++ Note: This does not affect the log level of un-prefixed prink() ++ usage in the kernel. That is controlled by the MESSAGE_LOGLEVEL_DEFAULT ++ option. ++ + config MESSAGE_LOGLEVEL_DEFAULT + int "Default message log level (1-7)" + range 1 7 +@@ -26,6 +41,10 @@ config MESSAGE_LOGLEVEL_DEFAULT + that are auditing their logs closely may want to set it to a lower + priority. + ++ Note: This does not affect what message level gets printed on the console ++ by default. To change that, use loglevel= in the kernel bootargs, ++ or pick a different CONSOLE_LOGLEVEL_DEFAULT configuration value. ++ + config BOOT_PRINTK_DELAY + bool "Delay each boot printk message by N milliseconds" + depends on DEBUG_KERNEL && PRINTK && GENERIC_CALIBRATE_DELAY +-- +2.7.3 +