Re: [PATCH 1/1] scripts/checkpatch.pl: remove warning for pritk_deferred also

From: Andy Whitcroft
Date: Mon Sep 06 2021 - 16:15:39 EST


On Tue, Aug 24, 2021 at 12:05:00PM +0530, Maninder Singh wrote:
> printk_deferred also supossed to get loglevel, but checkpatch.pl
> returns warning for same.
>
> WARNING: Possible unnecessary KERN_ALERT
> +printk_deferred(KERN_ALERT "checking deferred\n");
>
> total: 0 errors, 1 warnings, 20 lines checked
>
> Thus removing warning for printk_deferred also.
>
> Signed-off-by: Vaneet Narang <v.narang@xxxxxxxxxxx>
> Signed-off-by: Maninder Singh <maninder1.s@xxxxxxxxxxx>
> ---
> scripts/checkpatch.pl | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> index 161ce7fe5d1e..e3bea0d36c10 100755
> --- a/scripts/checkpatch.pl
> +++ b/scripts/checkpatch.pl
> @@ -6252,7 +6252,7 @@ sub process {
> }
>
> # check for logging functions with KERN_<LEVEL>
> - if ($line !~ /printk(?:_ratelimited|_once)?\s*\(/ &&
> + if ($line !~ /printk(?:_ratelimited|_once|_deferred)?\s*\(/ &&
> $line =~ /\b$logFunctions\s*\(.*\b(KERN_[A-Z]+)\b/) {
> my $level = $1;
> if (WARN("UNNECESSARY_KERN_LEVEL",
> --
> 2.17.1
>

It looks sensible to add `_deferred`, there also looks to be an
`_deferred_once` variant which should also be added. See the first
stanza of `$logFunctions`. We might also consider splitting up
`$logFunctions` so that we can consume the reset without that first
stanza? Something like this (completly untested):

our $logFunctionsCore = qr{(?x:
(?:[a-z0-9]+_){1,2}(?:printk|emerg|alert|crit|err|warning|warn|notice|info|debug|dbg|vdbg|devel|cont|WARN)(?:_ratelimited|_once|)|
TP_printk|
WARN(?:_RATELIMIT|_ONCE|)|
panic|
MODULE_[A-Z_]+|
seq_vprintf|seq_printf|seq_puts
)};
our $logFunctions = qr{(?x:
printk(?:_ratelimited|_once|_deferred_once|_deferred|)|
$logFunctionsCore
)};


-apw