Re: [PATCH v3] checkpatch: add missing bindings license check

From: Joe Perches
Date: Mon Mar 20 2023 - 18:40:56 EST


On Mon, 2023-03-20 at 23:33 +0300, Dmitry Rokosov wrote:
> All headers from 'include/dt-bindings/' must be verified by checkpatch
> together with Documentation bindings, because all of them are part of
> the whole DT bindings system.
>
> The requirement is dual licensed and matching pattern:
> /GPL-2\.0(?:-only|-or-later|\+)? (?:OR|or) BSD-2-Clause/
>
> The issue was found during patch review:
> https://lore.kernel.org/all/20230313201259.19998-4-ddrokosov@xxxxxxxxxxxxxx/
>
> Signed-off-by: Dmitry Rokosov <ddrokosov@xxxxxxxxxxxxxx>
> ---

Assuming the devicetree people are good with this change:

Acked-by: Joe Perches <joe@xxxxxxxxxxx>

> Changes v3 since v2 at [2]:
> - replace 'not =~' expression with '!~' to be aligned with other
> checkpatch lines
>
> Changes v2 since v1 at [1]:
> - include/dt-bindings check is aligned to open parens
> - introduce more strict pattern for bindings license:
> /GPL-2\.0(?:-only|-or-later|\+)? (?:OR|or) BSD-2-Clause/
>
> Links:
> [1] https://lore.kernel.org/all/20230317201621.15518-1-ddrokosov@xxxxxxxxxxxxxx/
> [2] https://lore.kernel.org/all/20230320100027.27788-1-ddrokosov@xxxxxxxxxxxxxx/
> ---
[]
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl

> @@ -3709,8 +3709,9 @@ sub process {
> WARN("SPDX_LICENSE_TAG",
> "'$spdx_license' is not supported in LICENSES/...\n" . $herecurr);
> }
> - if ($realfile =~ m@^Documentation/devicetree/bindings/@ &&
> - not $spdx_license =~ /GPL-2\.0.*BSD-2-Clause/) {
> + if (($realfile =~ m@^Documentation/devicetree/bindings/@ ||
> + $realfile =~ m@^include/dt-bindings/@) &&
> + $spdx_license !~ /GPL-2\.0(?:-only|-or-later|\+)? (?:OR|or) BSD-2-Clause/) {
> my $msg_level = \&WARN;
> $msg_level = \&CHK if ($file);
> if (&{$msg_level}("SPDX_LICENSE_TAG",