Re: [PATCH] checkpatch: add new warning when lookup_symbol_name() is used

From: Joe Perches
Date: Thu Dec 17 2020 - 12:28:42 EST


On Thu, 2020-12-17 at 18:11 +0100, Helge Deller wrote:
> In most cases people use lookup_symbol_name() to resolve a kernel symbol
> and then print it via printk().
>
> In such cases using the %ps, %pS, %pSR or %pB printk formats are easier
> to use and thus should be preferred.
[]
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
[]
> @@ -4317,6 +4317,12 @@ sub process {
>   "LINUX_VERSION_CODE should be avoided, code should be for the version to which it is merged\n" . $herecurr);
>   }
>
> +# avoid lookup_symbol_name()
> + if ($line =~ /\blookup_symbol_name\b/) {
> + WARN("PREFER_PRINTK_FORMAT",
> + "If possible prefer %ps or %pS printk format string to print symbol name instead of using lookup_symbol_name()\n" . $herecurr);
> + }
> +
>  # check for uses of printk_ratelimit
>   if ($line =~ /\bprintk_ratelimit\s*\(/) {
>   WARN("PRINTK_RATELIMITED",

Huh? nak.

lookup_symbol_name is used in the kernel a grand total of 3 times.
2 uses are kprobe, the other is fs/proc

None of the existing uses is equivalent to %ps

Why should this be applied?