The patch titled Subject: checkpatch: add printk_once and printk_ratelimit to prefer pr_<level> warning has been added to the -mm tree. Its filename is checkpatch-add-printk_once-and-printk_ratelimit-to-prefer-pr_level-warning.patch This patch should soon appear at https://ozlabs.org/~akpm/mmots/broken-out/checkpatch-add-printk_once-and-printk_ratelimit-to-prefer-pr_level-warning.patch and later at https://ozlabs.org/~akpm/mmotm/broken-out/checkpatch-add-printk_once-and-printk_ratelimit-to-prefer-pr_level-warning.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Joe Perches <joe@xxxxxxxxxxx> Subject: checkpatch: add printk_once and printk_ratelimit to prefer pr_<level> warning Add the _once and _ratelimited variants to the test for printk(KERN_<LEVEL> that should prefer pr_<level>. Miscellanea: o Add comment description for the conversions Link: https://lkml.kernel.org/r/993b72b2ef91a57c5e725b52971ce3fd31375061.camel@xxxxxxxxxxx Signed-off-by: Joe Perches <joe@xxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- scripts/checkpatch.pl | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) --- a/scripts/checkpatch.pl~checkpatch-add-printk_once-and-printk_ratelimit-to-prefer-pr_level-warning +++ a/scripts/checkpatch.pl @@ -4543,16 +4543,22 @@ sub process { "printk() should include KERN_<LEVEL> facility level\n" . $herecurr); } - if ($line =~ /\bprintk\s*\(\s*KERN_([A-Z]+)/) { - my $orig = $1; +# prefer variants of (subsystem|netdev|dev|pr)_<level> to printk(KERN_<LEVEL> + if ($line =~ /\b(printk(_once|_ratelimited)?)\s*\(\s*KERN_([A-Z]+)/) { + my $printk = $1; + my $modifier = $2; + my $orig = $3; my $level = lc($orig); $level = "warn" if ($level eq "warning"); my $level2 = $level; $level2 = "dbg" if ($level eq "debug"); + $level .= $modifier; + $level2 .= $modifier; WARN("PREFER_PR_LEVEL", - "Prefer [subsystem eg: netdev]_$level2([subsystem]dev, ... then dev_$level2(dev, ... then pr_$level(... to printk(KERN_$orig ...\n" . $herecurr); + "Prefer [subsystem eg: netdev]_$level2([subsystem]dev, ... then dev_$level2(dev, ... then pr_$level(... to $printk(KERN_$orig ...\n" . $herecurr); } +# prefer dev_<level> to dev_printk(KERN_<LEVEL> if ($line =~ /\bdev_printk\s*\(\s*KERN_([A-Z]+)/) { my $orig = $1; my $level = lc($orig); _ Patches currently in -mm which might be from joe@xxxxxxxxxxx are mm-zswap-make-struct-kernel_param_ops-definitions-const.patch mm-use-sysfs_emit-for-struct-kobject-uses.patch mm-huge_memory-convert-remaining-use-of-sprintf-to-sysfs_emit-and-neatening.patch mm-backing-dev-use-sysfs_emit-in-macro-defining-functions.patch mm-shmem-convert-shmem_enabled_show-to-use-sysfs_emit_at.patch mm-slub-convert-sysfs-sprintf-family-to-sysfs_emit-sysfs_emit_at.patch checkpatch-prefer-static-const-declarations.patch checkpatch-allow-fix-removal-of-unnecessary-break-statements.patch checkpatch-update-__attribute__sectionname-quote-removal.patch checkpatch-update-__attribute__sectionname-quote-removal-v2.patch checkpatch-add-__alias-and-__weak-to-suggested-__attribute__-conversions.patch checkpatch-add-printk_once-and-printk_ratelimit-to-prefer-pr_level-warning.patch treewide-remove-stringification-from-__alias-macro-definition.patch