On Wed, Jul 17 2024, Stefano Garzarella <sgarz...@redhat.com> wrote:

> If a file imported from Linux is touched, emit a warning and suggest
> using scripts/update-linux-headers.sh
>
> Signed-off-by: Stefano Garzarella <sgarz...@redhat.com>
> ---
>  scripts/checkpatch.pl | 14 ++++++++++++--
>  1 file changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> index ff373a7083..b0e8266fa2 100755
> --- a/scripts/checkpatch.pl
> +++ b/scripts/checkpatch.pl
> @@ -1374,6 +1374,7 @@ 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_imported_file = 0;
>       my $non_utf8_charset = 0;
>  
>       our @report = ();
> @@ -1673,8 +1674,17 @@ sub process {
>  # ignore non-hunk lines and lines being removed
>               next if (!$hunk_line || $line =~ /^-/);
>  
> -# ignore files that are being periodically imported from Linux
> -             next if ($realfile =~ 
> /^(linux-headers|include\/standard-headers)\//);
> +# ignore files that are being periodically imported from Linux and emit a 
> warning
> +             if ($realfile =~ 
> /^(linux-headers|include\/standard-headers)\//) {
> +                     if (!$reported_imported_file) {
> +                             $reported_imported_file = 1;
> +                             WARN("added, moved or deleted file(s) " .
> +                                  "imported from Linux, are you using " .
> +                                  "scripts/update-linux-headers.sh?\n" .
> +                                  $herecurr);
> +                     }
> +                     next;
> +             }

Thanks, that looks useful -- just two comments (sorry, my perl-fu is
low):
- Is there a way to check that this is a proper linux headers update?
  We'd have to rely on heuristics, but OTOH, we also usually want a
  headers update to use a certain format ($SUBJECT containing "headers
  update", patch description pointing to the version this update was
  done against.) Not sure if it is worth actually trying to figure this
  out.
- A common issue is headers changes mixed in with other code changes,
  which should not happen -- can we check for that as well and advise
  to either do a headers update, or use a placeholder patch?

>  
>  #trailing whitespace
>               if ($line =~ /^\+.*\015/) {


Reply via email to