printk: only look for prefix levels in kernel messages

vprintk_emit() prefix parsing should only be done for internal kernel
messages.  This allows existing behavior to be kept in all cases.

Signed-off-by: Joe Perches <joe@perches.com>
Cc: Kay Sievers <kay@vrfy.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Joe Perches
2012-07-30 14:40:19 -07:00
committed by Linus Torvalds
parent 04d2c8c83d
commit 088a52aac8
+5 -3
View File
@@ -1487,7 +1487,6 @@ asmlinkage int vprintk_emit(int facility, int level,
size_t text_len; size_t text_len;
enum log_flags lflags = 0; enum log_flags lflags = 0;
unsigned long flags; unsigned long flags;
int kern_level;
int this_cpu; int this_cpu;
int printed_len = 0; int printed_len = 0;
@@ -1543,8 +1542,10 @@ asmlinkage int vprintk_emit(int facility, int level,
lflags |= LOG_NEWLINE; lflags |= LOG_NEWLINE;
} }
/* strip syslog prefix and extract log level or control flags */ /* strip kernel syslog prefix and extract log level or control flags */
kern_level = printk_get_level(text); if (facility == 0) {
int kern_level = printk_get_level(text);
if (kern_level) { if (kern_level) {
const char *end_of_header = printk_skip_level(text); const char *end_of_header = printk_skip_level(text);
switch (kern_level) { switch (kern_level) {
@@ -1559,6 +1560,7 @@ asmlinkage int vprintk_emit(int facility, int level,
text_len -= end_of_header - text; text_len -= end_of_header - text;
text = (char *)end_of_header; text = (char *)end_of_header;
} }
}
if (level == -1) if (level == -1)
level = default_message_loglevel; level = default_message_loglevel;