summaryrefslogtreecommitdiff
path: root/scripts/checkpatch.pl
AgeCommit message (Collapse)Author
2026-01-06checkpatch: Add check for space indentation in KconfigKuan-Wei Chiu
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]> Reviewed-by: Tom Rini <[email protected]>
2025-10-08scripts/checkpatch.pl: Resync with v6.17Kory Maincent
This resyncs us with the version found in v6.17 of the Linux kernel with the following exceptions: - Keep our u-boot specific tests / code area. - Keep the location of our checkpatch.rst - Change the "use strscpy" test as we don't have that to strlcpy - Keep debug/printf in the list for $logFunctions - Keep checks to "env" files - Keep our tests for strncpy/strncat This also syncs the spdxcheck.py tool and all the associated documentation. Signed-off-by: Kory Maincent <[email protected]> [trini: Keep our strlcpy/cat check] Signed-off-by: Tom Rini <[email protected]>
2025-09-26scripts: checkpatch.pl: Extend some checks to "env" filesTom Rini
In order for the U-Boot specific tests we've added (along with the long line test) to be run on ".env" files as well, we need to update the line in the process function that starts to limit the file extensions that we test on. Signed-off-by: Tom Rini <[email protected]>
2025-03-18checkpatch.pl: Report an error for CONFIG_xPL_BUILD in device treesHendrik Donner
The defines for the different build phases shouldn't be used in device trees, currently they aren't even defined for device tree pre processing, resulting in build errors. Link: https://lists.denx.de/pipermail/u-boot/2025-March/582787.html Signed-off-by: Hendrik Donner <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2025-03-05scripts/checkpatch.pl: Upgrade IS_ENABLED_CONFIG to error for U-BootTom Rini
A problem we have today is that some instances of IS_ENABLED(FOO) have crept in to the code. This is in turn because with checkpatch.pl this is only a warning and not an error, so they were overlooked. And looking deeper, in the Linux kernel this pattern is allowed because IS_ENABLED(DEFINED_FLAG) is allowed if discouraged and a quick skim of the instances I saw in the current kernel follow this pattern. In U-Boot however, this is not allowed, so bump to an error. Signed-off-by: Tom Rini <[email protected]>
2023-10-24checkpatch.pl: Make common.h check boarderTom Rini
At this point in time we should not add common.h to any new files, so make checkpatch.pl complain. Signed-off-by: Tom Rini <[email protected]> Signed-off-by: Simon Glass <[email protected]>
2023-10-11checkpatch: skip fdtdec_* check for toolsLars Feyaerts
Have checkpatch.pl skip warnings for use of fdtdec_* functions in ooling; livetree isn't used there. Signed-off-by: Lars Feyaerts <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2023-02-14checkpatch: Add a warning for pre-schema driver model tagsSimon Glass
Help ensure that these don't creep into development by adding a check in checkpatch for them. Signed-off-by: Simon Glass <[email protected]>
2022-12-23checkpatch.pl: Update CONFIG logic in U-Boot sectionTom Rini
Now that all CONFIG symbols are in Kconfig, checkpatch.pl should check for and error on any case of define/undef CONFIG_*. Signed-off-by: Tom Rini <[email protected]>
2022-02-03scripts/checkpatch.pl: Resync with v5.16Simon Glass
This resyncs us with the version found in v5.16 of the Linux kernel with the following exceptions: - Keep our u-boot specific tests / code area. - Change the location of checkpatch.rst - Drop the "use strscpy" test as we don't have that, but do have strlcpy and want that used now. - Keep debug/printf in the list for $logFunctions This also syncs the spdxcheck.py tool and all the associated documentation. S Signed-off-by: Simon Glass <[email protected]>
2022-01-14checkpatch: report ERROR only on disabling of fdt and initrd relocationHou Zhiqiang
Let the check pass when patches have these patterns in their context. Signed-off-by: Hou Zhiqiang <[email protected]>
2021-09-01scripts/checkpatch.pl: Resync with v5.13Tom Rini
This resyncs us with the version found in v5.13 of the Linux kernel with the following exceptions: - Keep our u-boot specific tests / code area. - Change the location of checkpatch.rst (which we now import) - Drop the "use strscpy" test as we don't have that, but do have strlcpy and want that used now. - Keep debug/printf in the list for $logFunctions And note that we now also include the spdxcheck.py tool that checkpatch.pl supports calling out to, and include upstream's checkpatch.rst in our develop section of the documentation. Signed-off-by: Tom Rini <[email protected]>
2021-05-24checkpatch: require quotes around section name in the __section() macroMarek BehĂșn
This is how Linux does this now, see Linux commit 339f29d91acf. Signed-off-by: Marek BehĂșn <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2021-04-29patman: Parse checkpatch by message instead of by lineEvan Benn
Parse each empty-line-delimited message separately. This saves having to deal with all the different line content styles, we only care about the header ERROR | WARNING | NOTE... Also make checkpatch print line information for a uboot specific warning. Signed-off-by: Evan Benn <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2021-04-12checkpatch: Add warnings for using strn(cat|cpy)Sean Anderson
strn(cat|cpy) has a bad habit of not nul-terminating the destination, resulting in constructions like strncpy(foo, bar, sizeof(foo) - 1); foo[sizeof(foo) - 1] = '\0'; However, it is very easy to forget about this behavior and accidentally leave a string unterminated. This has shown up in some recent coverity scans [1, 2] (including code recently touched by yours truly). Fortunately, the guys at OpenBSD came up with strl(cat|cpy), which always nul-terminate strings. These functions are already in U-Boot, so we should encourage new code to use them instead of strn(cat|cpy). [1] https://lists.denx.de/pipermail/u-boot/2021-March/442888.html [2] https://lists.denx.de/pipermail/u-boot/2021-January/438073.html Signed-off-by: Sean Anderson <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2021-02-24cmd: fdt: skip board specific fixup using env variableWasim Khan
Sometimes it is useful to boot OS with already fixed-up device tree. Check for env variable 'skip_board_fixup' before calling ft_board_setup(). Current behaviour is unchanged, additionally user can set skip_board_fixup to 1 to skip the fixup. Signed-off-by: Wasim Khan <[email protected]>
2020-12-13checkpatch: Add warnings for unexpected struct namesSimon Glass
As a way of keeping the driver declarations more consistent, add a warning if the struct used does not end with _priv or _plat. Signed-off-by: Simon Glass <[email protected]>
2020-10-14checkpatch.pl: Make CONFIG_IS_ENABLED(CONFIG_*) an errorAlper Nebi Yasak
CONFIG_IS_ENABLED() takes the kconfig name without the CONFIG_ prefix, e.g. CONFIG_IS_ENABLED(CLK) for CONFIG_CLK. Make including the prefix an error in checkpatch.pl so calls in the wrong format aren't accidentally reintroduced. Signed-off-by: Alper Nebi Yasak <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2020-08-27checkpatch.pl: Make fdt / initrd relocation disabling an errorTom Rini
Entirely disabling relocation of the device tree or initrd is almost never the right answer. Doing this by default leads to hard to diagnose run-time failures. Signed-off-by: Tom Rini <[email protected]>
2020-08-03checkpatch: Don't allow common.h and dm.h in headersSimon Glass
These headers should not be included in other header files. Add a checkpatch rule and test for this. Signed-off-by: Simon Glass <[email protected]>
2020-07-09checkpatch: Don't warn about PREFER_IF in headers/DT filesSimon Glass
This warning should only be displayed for C files. Fix it and update the test. Signed-off-by: Simon Glass <[email protected]>
2020-07-01checkpatch.pl: Fully re-sync with v5.7Tom Rini
While commit 048a648298b1 ("checkpatch.pl: Update to v5.7") largely re-syncs us with checkpatch.pl from v5.7 there are a number of things missing still. Re-copy the script and again take care to keep our allowed debug prints and now localized checks intact. Fixes: 048a648298b1 ("checkpatch.pl: Update to v5.7") Signed-off-by: Tom Rini <[email protected]>
2020-06-04checkpatch.pl: Add check for defining CONFIG_CMD_xxx via config filesTom Rini
All of our cmds have a Kconfig entry. Making enabling a CMD via the config file an error to checkpatch.pl. Signed-off-by: Tom Rini <[email protected]>
2020-06-04checkpatch.pl: Request if() instead #ifdefSimon Glass
There is a lot of use of #ifdefs in U-Boot. In an effort reduce this, suggest using the compile-time construct. Signed-off-by: Simon Glass <[email protected]>
2020-06-04checkpatch.pl: Request a test when a new command is addedSimon Glass
This request is made with nearly every new command. Point to some docs on how to do it. Signed-off-by: Simon Glass <[email protected]>
2020-06-04checkpatch.pl: Warn if the flattree API is usedSimon Glass
We want people to use the livetree API, so request it. Signed-off-by: Simon Glass <[email protected]>
2020-06-04checkpatch.pl: Add a check for tests needed for uclassesSimon Glass
A common problem when submitting a new uclass is to forget to add sandbox tests. Add a warning for this. Of course tests should always be added for new code, but this one seems to be missed by nearly every new contributor. Signed-off-by: Simon Glass <[email protected]>
2020-06-04checkpatch.pl: Add a U-Boot optionSimon Glass
Add an option to indicate that U-Boot-specific checks should be enabled. Add a function to house the code that will be added. Signed-off-by: Simon Glass <[email protected]>
2020-06-04checkpatch.pl: Update to v5.7Simon Glass
Keep the U-Boot changes to $logFunctions Signed-off-by: Simon Glass <[email protected]> [trini: Resync with v5.7 release which changed the default max line length, update commit to reflect] Signed-off-by: Tom Rini <[email protected]>
2019-11-23tools: checkpatch: Restore 'debug' and 'printf' to logFunctions listJames Byrne
The 'debug' and 'printf' functions were previously added to the list of logFunctions in commit 0cab42110dbf ("checkpatch.pl: Add 'debug' to the list of logFunctions") and commit 397bfd4642c1 ("checkpatch.pl: Add 'printf' to logFunctions") but these additions were lost when newer versions of checkpatch were pulled in from the upstream Linux kernel version. This restores them so that you don't end up in a situation where checkpatch will give a warning for "quoted string split across lines" which you cannot fix without getting a warning for "line over 80 characters" instead. Signed-off-by: James Byrne <[email protected]>
2019-10-31checkpatch.pl: update from Linux kernel v5.4-rc3Heinrich Schuchardt
Update from upstream. Just minor changes like checking that the author has also done a sign-off. Signed-off-by: Heinrich Schuchardt <[email protected]>
2018-04-10checkpatch.pl: update from Linux kernel v4.16Heinrich Schuchardt
Update scripts/checkpatch.pl from upstream. One of the many corrections is not creating an error for cover-letters. Reintroduce U-Boot's 5c761ce58666b3a1695697498598f8bf3484a0c7 checkpatch.pl: Add warning for new __packed additions Signed-off-by: Heinrich Schuchardt <[email protected]>
2017-10-29checkpatch: Support wide stringsHeinrich Schuchardt
Allow prefixing typical strings with L for wide strings Patch originally by Joe Perches https://lkml.org/lkml/2017/10/17/1117 Signed-off-by: Joe Perches <[email protected]> Signed-off-by: Heinrich Schuchardt <[email protected]>
2017-09-15checkpatch.pl: Add warning for new __packed additionsHeinrich Schuchardt
While there are valid reasons to use __packed, often the answer is that you should be doing something else here instead. This reintroduces the changes of f503cc49a570 (Add warning for new __packed additions) Signed-off-by: Heinrich Schuchardt <[email protected]>
2017-09-14checkpatch: update from Linux v4.13-rc6Heinrich Schuchardt
Checkpatch produces the following warning: Unescaped left brace in regex is deprecated here (and will be fatal in Perl 5.30), passed through in regex; marked by <-- HERE in m/^(\+.*(?:do|\))){ <-- HERE / at scripts/checkpatch.pl line 3348. The curent checkpatch of the Linux kernel corrects this bug and many others. It provides improved colored output. So replace checkpatch by the current Linux version. Add an empty file scripts/const_structs.checkpatch. We can later fill it according to our needs. Signed-off-by: Heinrich Schuchardt <[email protected]>
2017-02-08checkpatch: Port spelling to checkpatchDan Murphy
Pick commit 66b47b4a9dad0 checkpatch: look for common misspellings from the Linux kernel for spelling check from Kees Cook In addition pulled in additional changes commit ebfd7d6237531 checkpatch: add optional --codespell dictionary to find more typos from the Linux kernel for codespell from Joe Perches commit f1a63678554f8 checkpatch: remove local from codespell path from the Linux kernel for dictionary path from Maxim Uvarov Signed-off-by: Dan Murphy <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2016-10-06Various, accumulated typos collected from around the tree.Robert P. J. Day
Fix various misspellings of: * deprecated * partition * preceding,preceded * preparation * its versus it's * export * existing * scenario * redundant * remaining * value * architecture Signed-off-by: Robert P. J. Day <[email protected]> Reviewed-by: Jagan Teki <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2016-01-04checkpatch: fix left brace warningHeiko Schocher
using checkpatch with Perl 5.22.0 generates a warning, this is fixed in linux through commit: commit 4e5d56bdf892e18832a6540b63ebf709966bce2a Author: Eddie Kovsky <[email protected]> Date: Wed Sep 9 15:37:52 2015 -0700 checkpatch: fix left brace warning Using checkpatch.pl with Perl 5.22.0 generates the following warning: Unescaped left brace in regex is deprecated, passed through in regex; This patch fixes the warnings by escaping occurrences of the left brace inside the regular expression. Adapt it for U-Boot. Signed-off-by: Heiko Schocher <[email protected]>
2014-09-25checkpatch: remove unnecessary + after {8,8}Joe Perches
Pick the following commit from Linux kernel: commit 66cb4ee0e52ca721f609fd5eec16187189ae5fda Author: Joe Perches <[email protected]> Date: Wed Sep 10 09:40:47 2014 +1000 checkpatch: remove unnecessary + after {8,8} There's a useless "+" use that needs to be removed as perl 5.20 emits a "Useless use of greediness modifier '+'" message each time it's hit. Signed-off-by: Marek Vasut <[email protected]> Cc: Tom Rini <[email protected]>
2014-03-04scripts: update checkpatch.pl to latest upstream versionTom Rini
Update to v3.14-rc4's version of checkpatch.pl. In doing so we drop the changes to top_of_kernel_tree() as we pass in --no-tree and drop our changes about MAINTAINERS as that's for reporting checkpatch.pl problems itself (and upstream has said they'll reword this section to be clearer). Signed-off-by: Tom Rini <[email protected]>
2014-02-26checkpatch.pl: Add warning for new __packed additionsTom Rini
While there are valid reasons to use __packed, often the answer is that you should be doing something else here instead. Signed-off-by: Tom Rini <[email protected]>
2013-12-13Makefile: Move some scripts imported from LinuxMasahiro Yamada
We have some scripts imported from Linux Kernel: setlocalversion, checkstack.pl, checkpatch.pl, cleanpatch They are located under tools/ directory in U-Boot now. But they were originally located under scripts/ directory in Linux Kernel. This commit moves them to the original location. It is true that binutils-version.sh and dtc-version.sh do not originate in Linux Kernel, but they should be moved by analogy to gcc-version.sh. Signed-off-by: Masahiro Yamada <[email protected]>