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

Lukas Bulwahn lukas.bulwahn at gmail.com
Thu Dec 10 11:59:42 UTC 2020


On Thu, Dec 10, 2020 at 12:50 PM Dwaipayan Ray <dwaipayanray1 at gmail.com> wrote:
>
> 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?
>

Yes, sure, send it to Joe and LKML.

I ran as quick rough estimation: grep -e "\sIS_ENABLED" . -R | grep -v CONFIG

I think:

./lib/crypto/chacha20poly1305-selftest.c: for (total_len =
POLY1305_DIGEST_SIZE;
IS_ENABLED(DEBUG_CHACHA20POLY1305_SLOW_CHUNK_TEST)

could be fixed, is that right?

Lukas


More information about the Linux-kernel-mentees mailing list