scripts/checkpatch: more checks on files imported from Linux

If a file imported from Linux is touched, emit a warning and suggest
using scripts/update-linux-headers.sh.

Also check that updating imported files from Linux are not mixed with
other changes, in which case emit an error.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20240718072050.9503-1-sgarzare@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20240813202329.1237572-7-alex.bennee@linaro.org>
This commit is contained in:
Stefano Garzarella 2024-08-13 21:23:14 +01:00 committed by Alex Bennée
parent 5f9ad35e04
commit 503eb470e0

View File

@ -1374,6 +1374,9 @@ sub process {
my $in_header_lines = $file ? 0 : 1;
my $in_commit_log = 0; #Scanning lines before patch
my $reported_maintainer_file = 0;
my $reported_mixing_imported_file = 0;
my $in_imported_file = 0;
my $in_no_imported_file = 0;
my $non_utf8_charset = 0;
our @report = ();
@ -1673,6 +1676,27 @@ sub process {
# ignore non-hunk lines and lines being removed
next if (!$hunk_line || $line =~ /^-/);
# Check that updating imported files from Linux are not mixed with other changes
if ($realfile =~ /^(linux-headers|include\/standard-headers)\//) {
if (!$in_imported_file) {
WARN("added, moved or deleted file(s) " .
"imported from Linux, are you using " .
"scripts/update-linux-headers.sh?\n" .
$herecurr);
}
$in_imported_file = 1;
} else {
$in_no_imported_file = 1;
}
if (!$reported_mixing_imported_file &&
$in_imported_file && $in_no_imported_file) {
ERROR("headers imported from Linux should be self-" .
"contained in a patch with no other changes\n" .
$herecurr);
$reported_mixing_imported_file = 1;
}
# ignore files that are being periodically imported from Linux
next if ($realfile =~ /^(linux-headers|include\/standard-headers)\//);