]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
checkpatch: exclude forward declarations of const structs
authorTaylor Nelms <tknelms@google.com>
Tue, 31 Mar 2026 18:15:09 +0000 (14:15 -0400)
committerAndrew Morton <akpm@linux-foundation.org>
Wed, 15 Apr 2026 09:15:02 +0000 (02:15 -0700)
Limit checkpatch warnings for normally-const structs by excluding patterns
consistent with forward declarations.

For example, the forward declaration `struct regmap_access_table;` in a
header file currently generates a warning recommending that it is
generally declared as const; however, this would apply a useless type
qualifier in the empty declaration `const struct regmap_access_table;`,
and subsequently generate compiler warnings.

Link: https://lkml.kernel.org/r/20260331181509.1258693-1-tknelms@google.com
Signed-off-by: Taylor Nelms <tknelms@google.com>
Acked-by: Joe Perches <joe@perches.com>
Cc: Andy Whitcroft <apw@canonical.com>
Cc: Dwaipayan Ray <dwaipayanray1@gmail.com>
Cc: Lukas Bulwahn <lukas.bulwahn@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
scripts/checkpatch.pl

index 27a43a4d9c4384517c4f90d072e6c71b22c9fa7f..7e612d3e2c1a13f494ea2f64eb4edbcab109e18b 100755 (executable)
@@ -7512,10 +7512,10 @@ sub process {
                }
 
 # check for various structs that are normally const (ops, kgdb, device_tree)
-# and avoid what seem like struct definitions 'struct foo {'
+# and avoid what seem like struct definitions 'struct foo {' or forward declarations 'struct foo;'
                if (defined($const_structs) &&
                    $line !~ /\bconst\b/ &&
-                   $line =~ /\bstruct\s+($const_structs)\b(?!\s*\{)/) {
+                   $line =~ /\bstruct\s+($const_structs)\b(?!\s*[\{;])/) {
                        WARN("CONST_STRUCT",
                             "struct $1 should normally be const\n" . $herecurr);
                }