Re: [PATCH v2] checkpatch: Add a warning for log messages that don't end in a new line

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





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


--
To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux