]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
checkpatch: Add check for space indentation in Kconfig
authorKuan-Wei Chiu <visitorckw@gmail.com>
Mon, 22 Dec 2025 17:42:55 +0000 (17:42 +0000)
committerTom Rini <trini@konsulko.com>
Tue, 6 Jan 2026 19:04:03 +0000 (13:04 -0600)
U-Boot requires Kconfig options to be indented with tabs, whereas Linux
allows spaces. Add a U-Boot specific check to warn when spaces are used
for indentation in Kconfig files.

To ensure this check is executed, move the u_boot_line() invocation in
process() to occur before the valid source file check. Previously,
Kconfig files were skipped by the file extension filter before the
U-Boot specific checks could run.

Example warning:

WARNING: Kconfig indentation should use tabs
+    bool

Link: https://lore.kernel.org/u-boot/20251222162026.GA847766@bill-the-cat/
Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
scripts/checkpatch.pl

index c755880ef9333e11e336d3dd1ce7d76982e894c4..7e4d6cd227c885b92cf6813617865616c03e4be9 100755 (executable)
@@ -2753,6 +2753,12 @@ sub u_boot_line {
                ERROR("CONFIG_xPL_BUILD",
                      "Do not use CONFIG_xPL_BUILD in device trees\n" . $herecurr);
        }
+
+       # Kconfig should use tabs for indentation
+       if ($realfile =~ /Kconfig/ && $line =~ /^\+ /) {
+               WARN("KCONFIG_INDENT",
+                    "Kconfig indentation should use tabs\n" . $herecurr);
+       }
 }
 
 sub exclude_global_initialisers {
@@ -3943,6 +3949,10 @@ sub process {
                             "It's generally not useful to have the filename in the file\n" . $herecurr);
                }
 
+               if ($u_boot) {
+                       u_boot_line($realfile, $line, $rawline, $herecurr);
+               }
+
 # check we are in a valid source file if not then ignore this hunk
                next if ($realfile !~ /\.(h|c|rs|s|S|sh|dtsi|dts|env)$/);
 
@@ -4034,10 +4044,6 @@ sub process {
                             "Avoid using '.L' prefixed local symbol names for denoting a range of code via 'SYM_*_START/END' annotations; see Documentation/core-api/asm-annotations.rst\n" . $herecurr);
                }
 
-               if ($u_boot) {
-                       u_boot_line($realfile, $line, $rawline, $herecurr);
-               }
-
 # check we are in a valid source file C or perl if not then ignore this hunk
                next if ($realfile !~ /\.(h|c|pl|dtsi|dts)$/);