2022-06-28 22:15:03

by Joe Simmons-Talbott

[permalink] [raw]
Subject: checkpatch.pl bug for EXPORT_SYMBOL when struct initialization follows define

I believe I've found a bug in checkpatch.pl where an EXPORT_SYMBOL for
an initialized struct following a simple #define without an intervening
blank line falsely reports that EXPORT_SYMBOL doesn't follow the symbol
definition. Here's an example:

#define SOMETHING_ELSE 1
struct blah foo = {
.a = 1
};
EXPORT_SYMBOL(foo);

You can see from the debug print that the full statement has not been
identified.

FOO A<+EXPORT_SYMBOL(foo);> stat<+ .a = 1
};> name<foo>

Unfortunately my perl skills were not sufficient to find a fix.

Thanks,
Joe


2022-08-18 15:18:54

by Joe Simmons-Talbott

[permalink] [raw]
Subject: Re: checkpatch.pl bug for EXPORT_SYMBOL when struct initialization follows define

On Tue, Jun 28, 2022 at 06:10:41PM -0400, Joe Simmons-Talbott wrote:
> I believe I've found a bug in checkpatch.pl where an EXPORT_SYMBOL for
> an initialized struct following a simple #define without an intervening
> blank line falsely reports that EXPORT_SYMBOL doesn't follow the symbol
> definition. Here's an example:
>
> #define SOMETHING_ELSE 1
> struct blah foo = {
> .a = 1
> };
> EXPORT_SYMBOL(foo);
>
> You can see from the debug print that the full statement has not been
> identified.
>
> FOO A<+EXPORT_SYMBOL(foo);> stat<+ .a = 1
> };> name<foo>
>
> Unfortunately my perl skills were not sufficient to find a fix.

I created the following BZ https://bugzilla.kernel.org/show_bug.cgi?id=216374

Thanks,
Joe