Re: printk: what is going on with additional newlines?
From: Linus Torvalds
Date: Tue Aug 29 2017 - 12:48:55 EST
On Mon, Aug 28, 2017 at 2:05 AM, Pavel Machek <pavel@xxxxxx> wrote:
> Hi!
>
> In 4.13-rc, printk("foo"); printk("bar"); seems to produce
> foo\nbar. That's... quite surprising/unwelcome. What is going on
> there? Are timestamps responsible?
No.
It's actively trying to treach you not to do shit.
If you want to continue a line, you NEED to use KERN_CONT.
That has always been true. It hasn't always been enforced, though.
If you do two printk's and the second one doesn't say "I'm a
continuation", the printk logic assumes you're just confused and
wanted two lines.
And no, we are *NOT* adding code to printk to help people avoid this.
Quite the reverse.
Stop doing continuations at all please. But if you do, you'd better
use KERN_CONT. And if you don't, and you get multiple lines, it's your
own damn fault.
Linus