qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] scripts/checkpatch: more checks on files imported from Linux
@ 2024-07-18  7:20 Stefano Garzarella
  2024-07-18  7:49 ` Daniel P. Berrangé
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Stefano Garzarella @ 2024-07-18  7:20 UTC (permalink / raw)
  To: qemu-devel; +Cc: cohuck, berrange, Stefano Garzarella

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>
---
v2:
- added an error when mixing imported files with other changes [Daniel,
  Cornelia]

v1: https://patchew.org/QEMU/20240717093752.50595-1-sgarzare@redhat.com/
---
 scripts/checkpatch.pl | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index ff373a7083..65b6f46f90 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -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)\//);
 
-- 
2.45.2



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] scripts/checkpatch: more checks on files imported from Linux
  2024-07-18  7:20 [PATCH v2] scripts/checkpatch: more checks on files imported from Linux Stefano Garzarella
@ 2024-07-18  7:49 ` Daniel P. Berrangé
  2024-07-19 12:05 ` Cornelia Huck
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Daniel P. Berrangé @ 2024-07-18  7:49 UTC (permalink / raw)
  To: Stefano Garzarella; +Cc: qemu-devel, cohuck

On Thu, Jul 18, 2024 at 09:20:50AM +0200, Stefano Garzarella wrote:
> 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>
> ---
> v2:
> - added an error when mixing imported files with other changes [Daniel,
>   Cornelia]
> 
> v1: https://patchew.org/QEMU/20240717093752.50595-1-sgarzare@redhat.com/
> ---
>  scripts/checkpatch.pl | 24 ++++++++++++++++++++++++
>  1 file changed, 24 insertions(+)

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>


With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] scripts/checkpatch: more checks on files imported from Linux
  2024-07-18  7:20 [PATCH v2] scripts/checkpatch: more checks on files imported from Linux Stefano Garzarella
  2024-07-18  7:49 ` Daniel P. Berrangé
@ 2024-07-19 12:05 ` Cornelia Huck
  2024-08-07  8:53 ` Alex Bennée
  2025-01-16  9:26 ` David Woodhouse
  3 siblings, 0 replies; 6+ messages in thread
From: Cornelia Huck @ 2024-07-19 12:05 UTC (permalink / raw)
  To: Stefano Garzarella, qemu-devel; +Cc: berrange, Stefano Garzarella

On Thu, Jul 18 2024, Stefano Garzarella <sgarzare@redhat.com> wrote:

> 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>
> ---
> v2:
> - added an error when mixing imported files with other changes [Daniel,
>   Cornelia]
>
> v1: https://patchew.org/QEMU/20240717093752.50595-1-sgarzare@redhat.com/
> ---
>  scripts/checkpatch.pl | 24 ++++++++++++++++++++++++
>  1 file changed, 24 insertions(+)

Reviewed-by: Cornelia Huck <cohuck@redhat.com>



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] scripts/checkpatch: more checks on files imported from Linux
  2024-07-18  7:20 [PATCH v2] scripts/checkpatch: more checks on files imported from Linux Stefano Garzarella
  2024-07-18  7:49 ` Daniel P. Berrangé
  2024-07-19 12:05 ` Cornelia Huck
@ 2024-08-07  8:53 ` Alex Bennée
  2025-01-16  9:26 ` David Woodhouse
  3 siblings, 0 replies; 6+ messages in thread
From: Alex Bennée @ 2024-08-07  8:53 UTC (permalink / raw)
  To: Stefano Garzarella; +Cc: qemu-devel, cohuck, berrange

Stefano Garzarella <sgarzare@redhat.com> writes:

> 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>

Queued to for-9.1/misc-fixes, thanks.

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] scripts/checkpatch: more checks on files imported from Linux
  2024-07-18  7:20 [PATCH v2] scripts/checkpatch: more checks on files imported from Linux Stefano Garzarella
                   ` (2 preceding siblings ...)
  2024-08-07  8:53 ` Alex Bennée
@ 2025-01-16  9:26 ` David Woodhouse
  2025-01-16 10:58   ` Peter Maydell
  3 siblings, 1 reply; 6+ messages in thread
From: David Woodhouse @ 2025-01-16  9:26 UTC (permalink / raw)
  To: Stefano Garzarella, qemu-devel; +Cc: cohuck, berrange

[-- Attachment #1: Type: text/plain, Size: 1469 bytes --]

On Thu, 2024-07-18 at 09:20 +0200, Stefano Garzarella wrote:
> 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>

This now seems to complain about a commit which simply adds a file to
update-linux-headers.sh and simultaneously adds the newly-imported
file. Such as commit aa274c33c39e7de981dc195abe60e1a246c9d248.

Was that the intent? Do we really need to have *three* separate
commits, one for update-linux-headers.sh, one to import the new header,
and then the third to add the QEMU code which actually uses the new
header?

$ scripts/checkpatch.pl 0001-update-linux-headers-import-linux-kvm_para.h-header.patch
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#36: 
new file mode 100644

WARNING: added, moved or deleted file(s) imported from Linux, are you using scripts/update-linux-headers.sh?
#41: FILE: include/standard-headers/linux/kvm_para.h:1:
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */

ERROR: headers imported from Linux should be self-contained in a patch with no other changes
#99: FILE: scripts/update-linux-headers.sh:63:
                                      -e 'linux/kernel' \

total: 1 errors, 2 warnings, 100 lines checked


[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 5069 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] scripts/checkpatch: more checks on files imported from Linux
  2025-01-16  9:26 ` David Woodhouse
@ 2025-01-16 10:58   ` Peter Maydell
  0 siblings, 0 replies; 6+ messages in thread
From: Peter Maydell @ 2025-01-16 10:58 UTC (permalink / raw)
  To: David Woodhouse; +Cc: Stefano Garzarella, qemu-devel, cohuck, berrange

On Thu, 16 Jan 2025 at 09:26, David Woodhouse <dwmw2@infradead.org> wrote:
>
> On Thu, 2024-07-18 at 09:20 +0200, Stefano Garzarella wrote:
> > 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>
>
> This now seems to complain about a commit which simply adds a file to
> update-linux-headers.sh and simultaneously adds the newly-imported
> file. Such as commit aa274c33c39e7de981dc195abe60e1a246c9d248.
>
> Was that the intent? Do we really need to have *three* separate
> commits, one for update-linux-headers.sh, one to import the new header,
> and then the third to add the QEMU code which actually uses the new
> header?
>
> $ scripts/checkpatch.pl 0001-update-linux-headers-import-linux-kvm_para.h-header.patch
> WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
> #36:
> new file mode 100644
>
> WARNING: added, moved or deleted file(s) imported from Linux, are you using scripts/update-linux-headers.sh?
> #41: FILE: include/standard-headers/linux/kvm_para.h:1:
> +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
>
> ERROR: headers imported from Linux should be self-contained in a patch with no other changes
> #99: FILE: scripts/update-linux-headers.sh:63:
>                                       -e 'linux/kernel' \

Just to state for the record the conclusion of our conversation
on IRC; yes, the error is correct. Header-imports from
Linux should be in a patch of their own which has no
changes except the results of running update-linux-headers.sh
(and ideally we would not have let aa274c33c39e7 through
code review). So, yes, you have a series of three patches:
 * change update-linux-headers.sh
 * automated-change-only commit resulting from running the script
 * the change you want to make that requires the new header

thanks
-- PMM


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2025-01-16 10:59 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-18  7:20 [PATCH v2] scripts/checkpatch: more checks on files imported from Linux Stefano Garzarella
2024-07-18  7:49 ` Daniel P. Berrangé
2024-07-19 12:05 ` Cornelia Huck
2024-08-07  8:53 ` Alex Bennée
2025-01-16  9:26 ` David Woodhouse
2025-01-16 10:58   ` Peter Maydell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).