[Linux-kernel-mentees] [PATCH RFC 2/2] checkpatch: fix multi-statement macro checks

Dwaipayan Ray dwaipayanray1 at gmail.com
Thu Oct 1 10:24:36 UTC 2020


On Thu, Oct 1, 2020 at 1:52 PM Lukas Bulwahn <lukas.bulwahn at gmail.com> wrote:
>
>
>
> On Thu, 1 Oct 2020, Dwaipayan Ray wrote:
>
> > Checkpatch.pl doesn't have a check for excluding while (...) {...}
> > blocks from MULTISTATEMENT_MACRO_USE_DO_WHILE error.
> >
> > For example, running checkpatch.pl on the file mm/access.c in the
> > kernel generates the following error:
> >
> > ERROR: Macros with complex values should be enclosed in parentheses
> > +#define copy_from_kernel_nofault_loop(dst, src, len, type, err_label)        \
> > +     while (len >= sizeof(type)) {                                   \
> > +             __get_kernel_nofault(dst, src, type, err_label);        \
> > +             dst += sizeof(type);                                    \
> > +             src += sizeof(type);                                    \
> > +             len -= sizeof(type);                                    \
> > +     }
> >
> > The error is misleading for this case. Enclosing it in a paranthesis
> > doesn't make any sense.
> >
>
> s/a paranthesis/parentheses/
>

I trusted checkpatch too much. Seems spelling.txt does not have an entry
for parentheses. (maybe not the most common spelling error).

> > Checkpatch already has an exception list for such common macro types.
> > Added a new exception for while (...) {...} style blocks to the same.
> > This effectively fixed the wrong error message.
> >
>
> This seems easier to understand and to judge than the other patch.
>
> We will still need an evaluation, though. Theodoros, maybe you can help us
> here.
>
> Dwaipayan, looks good to me. Do you fix up the spelling mistake and then
> send that patch to Joe and lkml?
>

Thanks, I will do that. Sending just this patch for now. The other one
needs more testing. I will send in the report once done.

> Is it just the tab setting in my email client or is there a tab too much
> that it does not align with the other comments?

Yes, it was an extra tab. The tabs at that particular place are too
non-uniform, causing confusion :(

Thanks,
Dwaipayan.


More information about the Linux-kernel-mentees mailing list