lkml.org 
[lkml]   [2017]   [Nov]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRe: [PATCH v2] checkpatch: Add a warning for log messages that don't end in a new line


On 27/11/17 01:28 AM, Joe Perches wrote:
> checkpatch already reports printks without KERN_<level>
>
> # printk should use KERN_* levels
> if ($line =~ /\bprintk\s*\(\s*(?!KERN_[A-Z]+\b)/) {
> WARN("PRINTK_WITHOUT_KERN_LEVEL",
> "printk() should include KERN_<LEVEL> facility level\n" . $herecurr);
> }
>

Yes, but that kind of misses the mark in a similar way a new line
warning misses the mark. Consider:

printk("blahblah: ");
printk("blah\n");

Check patch will report that both lines are missing a KERN_ level, but
actually the second line is meant to be a continuation. So someone fixes
it, naively:

printk(KERN_INFO, "blahblah: ");
printk(KERN_INFO, "blah\n");

Now, checkpatch will not warn on either and it looks like they fixed it,
even though it's pretty clear that it's not correct either way. With, my
patch, it will report a missing new line on the first line. If someone
looked at it, they may realize it's actually missing a KERN_CONT. If we
use the space heuristic, in this case, the warning might also suggest it
may be missing a _cont. But the huristic isn't great... maybe the author
actually meant:

printk(KERN_INFO, "blahblah:\n");
printk(KERN_INFO, " blah\n");

But I wouldn't say a warning in this case is a bad thing because it
forces someone to look at something that is obviously wrong in some way.

Logan


\
 
 \ /
  Last update: 2017-11-27 18:22    [W:0.076 / U:3.792 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site