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 <[email protected]> --- scripts/checkpatch.pl | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index c755880ef93..7e4d6cd227c 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -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)$/); -- 2.52.0.322.g1dd061c0dc-goog

