]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
scripts/checkpatch: more checks on files imported from Linux
authorStefano Garzarella <sgarzare@redhat.com>
Tue, 13 Aug 2024 20:23:14 +0000 (21:23 +0100)
committerAlex Bennée <alex.bennee@linaro.org>
Fri, 16 Aug 2024 13:04:19 +0000 (14:04 +0100)
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>

scripts/checkpatch.pl

index ff373a70831d47a311eda057e465f33cde19a864..65b6f46f905dae44a555804eb91ce9c95c83e7a0 100755 (executable)
@@ -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)\//);