[Linux-kernel-mentees] [PATCH RFC] checkpatch: add new exceptions to repeated word check

Dwaipayan Ray dwaipayanray1 at gmail.com
Mon Oct 12 18:34:41 UTC 2020


On Sun, Oct 11, 2020 at 11:12 PM Dwaipayan Ray <dwaipayanray1 at gmail.com> wrote:
>
> On Sun, Oct 11, 2020 at 11:07 PM Lukas Bulwahn <lukas.bulwahn at gmail.com> wrote:
> >
> >
> >
> > On Sun, 11 Oct 2020, Dwaipayan Ray wrote:
> >
> > > On Sun, Oct 11, 2020 at 12:14 PM Dwaipayan Ray <dwaipayanray1 at gmail.com> wrote:
> > > >
> > > > The repeated word check generated false positives for
> > > > the following pattern:
> > > >
> > > > "git git://..."
> > > >
> > > > This resulted in lots of warnings in the MAINTAINERS file
> > > > which shouldn't have been generated.
> > > >
> > > > Fixed this issue by adding "git" to the exception list
> > > > for repeated word check.
> > > >
> > > > In addition, modified $word_pattern to capture words which
> > > > may contain a single letter like "a".
> > > > This ensures that repeated word warning in cases like
> > > > "This is a a repetition" are also generated.
> > > >
> > > > Link: https://lore.kernel.org/linux-kernel-mentees/b6cd81b936671a8868fe98536d7c80771bdfd61c.camel@perches.com/
> > > >
> > > > Suggested-by: Joe Perches <joe at perches.com>
> > > > Suggested-by: Lukas Bulwahn <lukas.bulwahn at gmail.com>
> > > > Signed-off-by: Dwaipayan Ray <dwaipayanray1 at gmail.com>
> > > > ---
> > > >  scripts/checkpatch.pl | 4 ++--
> > > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > > >
> > > > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> > > > index 124ff9432b51..0ef75d2fb5cf 100755
> > > > --- a/scripts/checkpatch.pl
> > > > +++ b/scripts/checkpatch.pl
> > > > @@ -588,7 +588,7 @@ our @mode_permission_funcs = (
> > > >         ["__ATTR", 2],
> > > >  );
> > > >
> > > > -my $word_pattern = '\b[A-Z]?[a-z]{2,}\b';
> > > > +my $word_pattern = '\b[A-Z]?[a-z]{1,}\b';
> > > >
> > > >  #Create a search pattern for all these functions to speed up a loop below
> > > >  our $mode_perms_search = "";
> > > > @@ -3364,7 +3364,7 @@ sub process {
> > > >                                 }
> > > >
> > > >                                 next if ($first ne $second);
> > > > -                               next if ($first eq 'long');
> > > > +                               next if ($first =~ /(?:long|git)$/);
> > > >
> > > >                                 if (WARN("REPEATED_WORD",
> > > >                                          "Possible repeated word: '$first'\n" . $herecurr) &&
> > > > --
> > > > 2.27.0
> > > >
> > >
> > > One more additional improvement to this would be to make
> > > comparison case neutral.
> > >
> > > Like:
> > >
> > >  -  next if ($first ne $second);
> > > +  next if (lc($first) ne lc($second));
> > >
> > > What do you think?
> > >
> >
> > Sounds good. Please evaluate though. Then, we can really judge better.
> >
>
> Sure, I will run both the evaluations:
> 1) For case insenstitive matching
> 2) For single letter words
>
> Thanks,
> Dwaipayan.

I did run an evaulation for the single letter case
and though it caught one of the lurking 'a's, like in:

commit 8d90822643ad ("crypto: engine - support for batch requests")

WARNING:REPEATED_WORD: Possible repeated word: 'a'
#53: FILE: crypto/crypto_engine.c:472:
+ * @cbk_do_batch: pointer to a callback function to be invoked when executing a
+ *                a batch of requests.


But yikes, it introduced new false positive:

commit 6514b25d3fba ("lpfc: Refactor Send LS Request support")

WARNING:REPEATED_WORD: Possible repeated word: 'x'
#156: FILE: drivers/scsi/lpfc/lpfc_nvme.c:614:
+ "Data: x%x x%x  rc x%x\n",

It's probably a bad idea to allow single lettered checking. :-[

Thanks,
Dwaipayan.


More information about the Linux-kernel-mentees mailing list