[Linux-kernel-mentees] [PATCH] checkpatch: add --fix option to IS_ENABLED_CONFIG check

Dwaipayan Ray dwaipayanray1 at gmail.com
Thu Dec 10 11:50:15 UTC 2020


On Tue, Dec 8, 2020 at 12:28 AM Dwaipayan Ray <dwaipayanray1 at gmail.com> wrote:
>
> Documentation/process/coding-style.rst specifies the use of
> IS_ENABLED macro:
>
> Within code, where possible, use the IS_ENABLED macro to convert a Kconfig
> symbol into a C boolean expression, and use it in a normal C conditional:
>
>         if (IS_ENABLED(CONFIG_SOMETHING)) {
>                 ...
>         }
>
> checkpatch correspondingly has a check for IS_ENABLED() without
> CONFIG_<FOO>.
> Add a --fix option to the check to automatically correct the argument.
>
> Macros like:
>  #if IS_ENABLED(THERMAL)
>
> is corrected to:
>  #if IS_ENABLED(CONFIG_THERMAL)
>
> Signed-off-by: Dwaipayan Ray <dwaipayanray1 at gmail.com>
> ---
>  scripts/checkpatch.pl | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> index 7b086d1cd6c2..751cd13622b9 100755
> --- a/scripts/checkpatch.pl
> +++ b/scripts/checkpatch.pl
> @@ -6877,8 +6877,11 @@ sub process {
>
>  # check for IS_ENABLED() without CONFIG_<FOO> ($rawline for comments too)
>                 if ($rawline =~ /\bIS_ENABLED\s*\(\s*(\w+)\s*\)/ && $1 !~ /^${CONFIG_}/) {
> -                       WARN("IS_ENABLED_CONFIG",
> -                            "IS_ENABLED($1) is normally used as IS_ENABLED(${CONFIG_}$1)\n" . $herecurr);
> +                       if (WARN("IS_ENABLED_CONFIG",
> +                                "IS_ENABLED($1) is normally used as IS_ENABLED(${CONFIG_}$1)\n" . $herecurr) &&
> +                           $fix) {
> +                               $fixed[$fixlinenr] =~ s/\bIS_ENABLED\s*\(\s*(\w+)\s*\)/IS_ENABLED(${CONFIG_}$1)/;
> +                       }
>                 }
>
>  # check for #if defined CONFIG_<FOO> || defined CONFIG_<FOO>_MODULE
> --
> 2.27.0

Hi Lukas,
You probably missed this patch.
If you are okay with it could I send it off to LKML?

Thank you,
Dwaipayan.


More information about the Linux-kernel-mentees mailing list