From: Petr Mladek Date: Tue, 14 Aug 2018 11:36:15 +0000 (+0200) Subject: Merge branch 'for-4.19-nmi' into for-linus X-Git-Tag: v4.19-rc1~146^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9f68cb579115faa211ae067b4628cf11162783fb;p=thirdparty%2Fkernel%2Flinux.git Merge branch 'for-4.19-nmi' into for-linus --- 9f68cb579115faa211ae067b4628cf11162783fb diff --cc kernel/printk/printk.c index e2cb0fc18e2d0,1d1513215c22f..9a63aeeaaf5dd --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@@ -1891,11 -1874,29 +1879,32 @@@ int vprintk_store(int facility, int lev if (dict) lflags |= LOG_PREFIX|LOG_NEWLINE; + if (suppress_message_printing(level)) + lflags |= LOG_NOCONS; + - printed_len = log_output(facility, level, lflags, dict, dictlen, text, text_len); + return log_output(facility, level, lflags, + dict, dictlen, text, text_len); + } + asmlinkage int vprintk_emit(int facility, int level, + const char *dict, size_t dictlen, + const char *fmt, va_list args) + { + int printed_len; + bool in_sched = false; + unsigned long flags; + + if (level == LOGLEVEL_SCHED) { + level = LOGLEVEL_DEFAULT; + in_sched = true; + } + + boot_delay_msec(level); + printk_delay(); + + /* This stops the holder of console_sem just where we want him */ + logbuf_lock_irqsave(flags); + printed_len = vprintk_store(facility, level, dict, dictlen, fmt, args); logbuf_unlock_irqrestore(flags); /* If called from the scheduler, we can not call up(). */