Skip to content

Commit 088a52a

Browse files
JoePerchestorvalds
authored andcommitted
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 <[email protected]> Cc: Kay Sievers <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
1 parent 04d2c8c commit 088a52a

File tree

1 file changed

+17
-15
lines changed

1 file changed

+17
-15
lines changed

kernel/printk.c

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1487,7 +1487,6 @@ asmlinkage int vprintk_emit(int facility, int level,
14871487
size_t text_len;
14881488
enum log_flags lflags = 0;
14891489
unsigned long flags;
1490-
int kern_level;
14911490
int this_cpu;
14921491
int printed_len = 0;
14931492

@@ -1543,21 +1542,24 @@ asmlinkage int vprintk_emit(int facility, int level,
15431542
lflags |= LOG_NEWLINE;
15441543
}
15451544

1546-
/* strip syslog prefix and extract log level or control flags */
1547-
kern_level = printk_get_level(text);
1548-
if (kern_level) {
1549-
const char *end_of_header = printk_skip_level(text);
1550-
switch (kern_level) {
1551-
case '0' ... '7':
1552-
if (level == -1)
1553-
level = kern_level - '0';
1554-
case 'd': /* KERN_DEFAULT */
1555-
lflags |= LOG_PREFIX;
1556-
case 'c': /* KERN_CONT */
1557-
break;
1545+
/* strip kernel syslog prefix and extract log level or control flags */
1546+
if (facility == 0) {
1547+
int kern_level = printk_get_level(text);
1548+
1549+
if (kern_level) {
1550+
const char *end_of_header = printk_skip_level(text);
1551+
switch (kern_level) {
1552+
case '0' ... '7':
1553+
if (level == -1)
1554+
level = kern_level - '0';
1555+
case 'd': /* KERN_DEFAULT */
1556+
lflags |= LOG_PREFIX;
1557+
case 'c': /* KERN_CONT */
1558+
break;
1559+
}
1560+
text_len -= end_of_header - text;
1561+
text = (char *)end_of_header;
15581562
}
1559-
text_len -= end_of_header - text;
1560-
text = (char *)end_of_header;
15611563
}
15621564

15631565
if (level == -1)

0 commit comments

Comments
 (0)