|
@@ -747,6 +747,21 @@ void __init setup_log_buf(int early)
|
|
|
free, (free * 100) / __LOG_BUF_LEN);
|
|
|
}
|
|
|
|
|
|
+static bool __read_mostly ignore_loglevel;
|
|
|
+
|
|
|
+static int __init ignore_loglevel_setup(char *str)
|
|
|
+{
|
|
|
+ ignore_loglevel = 1;
|
|
|
+ printk(KERN_INFO "debug: ignoring loglevel setting.\n");
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+early_param("ignore_loglevel", ignore_loglevel_setup);
|
|
|
+module_param(ignore_loglevel, bool, S_IRUGO | S_IWUSR);
|
|
|
+MODULE_PARM_DESC(ignore_loglevel, "ignore loglevel setting, to"
|
|
|
+ "print all kernel messages to the console.");
|
|
|
+
|
|
|
#ifdef CONFIG_BOOT_PRINTK_DELAY
|
|
|
|
|
|
static int boot_delay; /* msecs delay after each printk during bootup */
|
|
@@ -770,13 +785,15 @@ static int __init boot_delay_setup(char *str)
|
|
|
}
|
|
|
__setup("boot_delay=", boot_delay_setup);
|
|
|
|
|
|
-static void boot_delay_msec(void)
|
|
|
+static void boot_delay_msec(int level)
|
|
|
{
|
|
|
unsigned long long k;
|
|
|
unsigned long timeout;
|
|
|
|
|
|
- if (boot_delay == 0 || system_state != SYSTEM_BOOTING)
|
|
|
+ if ((boot_delay == 0 || system_state != SYSTEM_BOOTING)
|
|
|
+ || (level >= console_loglevel && !ignore_loglevel)) {
|
|
|
return;
|
|
|
+ }
|
|
|
|
|
|
k = (unsigned long long)loops_per_msec * boot_delay;
|
|
|
|
|
@@ -795,7 +812,7 @@ static void boot_delay_msec(void)
|
|
|
}
|
|
|
}
|
|
|
#else
|
|
|
-static inline void boot_delay_msec(void)
|
|
|
+static inline void boot_delay_msec(int level)
|
|
|
{
|
|
|
}
|
|
|
#endif
|
|
@@ -1238,21 +1255,6 @@ SYSCALL_DEFINE3(syslog, int, type, char __user *, buf, int, len)
|
|
|
return do_syslog(type, buf, len, SYSLOG_FROM_CALL);
|
|
|
}
|
|
|
|
|
|
-static bool __read_mostly ignore_loglevel;
|
|
|
-
|
|
|
-static int __init ignore_loglevel_setup(char *str)
|
|
|
-{
|
|
|
- ignore_loglevel = 1;
|
|
|
- printk(KERN_INFO "debug: ignoring loglevel setting.\n");
|
|
|
-
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-early_param("ignore_loglevel", ignore_loglevel_setup);
|
|
|
-module_param(ignore_loglevel, bool, S_IRUGO | S_IWUSR);
|
|
|
-MODULE_PARM_DESC(ignore_loglevel, "ignore loglevel setting, to"
|
|
|
- "print all kernel messages to the console.");
|
|
|
-
|
|
|
/*
|
|
|
* Call the console drivers, asking them to write out
|
|
|
* log_buf[start] to log_buf[end - 1].
|
|
@@ -1498,7 +1500,7 @@ asmlinkage int vprintk_emit(int facility, int level,
|
|
|
int this_cpu;
|
|
|
int printed_len = 0;
|
|
|
|
|
|
- boot_delay_msec();
|
|
|
+ boot_delay_msec(level);
|
|
|
printk_delay();
|
|
|
|
|
|
/* This stops the holder of console_sem just where we want him */
|