Commit 8835ca59 authored by Linus Torvalds's avatar Linus Torvalds

printk: suppress empty continuation lines

We have a fairly common pattern where you print several things as
continuations on one single line in a loop, and then at the end you do

	printk(KERN_CONT "\n");

to flush the buffered output.

But if the output was flushed by something else (concurrent printk
activity, or just system logging), we don't want that final flushing to
just print an empty line.

So just suppress empty continuation lines when they couldn't be merged
into the line they are a continuation of.
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 63ae602c
...@@ -1769,6 +1769,10 @@ static size_t log_output(int facility, int level, enum log_flags lflags, const c ...@@ -1769,6 +1769,10 @@ static size_t log_output(int facility, int level, enum log_flags lflags, const c
cont_flush(); cont_flush();
} }
/* Skip empty continuation lines that couldn't be added - they just flush */
if (!text_len && (lflags & LOG_CONT))
return 0;
/* If it doesn't end in a newline, try to buffer the current line */ /* If it doesn't end in a newline, try to buffer the current line */
if (!(lflags & LOG_NEWLINE)) { if (!(lflags & LOG_NEWLINE)) {
if (cont_add(facility, level, lflags, text, text_len)) if (cont_add(facility, level, lflags, text, text_len))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment