[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.21.2006042130080.2577@hadrien>
Date: Thu, 4 Jun 2020 21:31:21 +0200 (CEST)
From: Julia Lawall <julia.lawall@...ia.fr>
To: Matthias Maennich <maennich@...gle.com>
cc: linux-kernel@...r.kernel.org, kernel-team@...roid.com,
Julia Lawall <julia.lawall@...ia.fr>,
YueHaibing <yuehaibing@...wei.com>, jeyu@...nel.org,
cocci@...teme.lip6.fr, stable@...r.kernel.org,
Shuah Khan <skhan@...uxfoundation.org>
Subject: Re: [PATCH] scripts: add dummy report mode to add_namespace.cocci
On Thu, 4 Jun 2020, Matthias Maennich wrote:
> When running `make coccicheck` in report mode using the
> add_namespace.cocci file, it will fail for files that contain
> MODULE_LICENSE. Those match the replacement precondition, but spatch
> errors out as virtual.ns is not set.
>
> In order to fix that, add the virtual rule nsdeps and only do search and
> replace if that rule has been explicitly requested.
>
> In order to make spatch happy in report mode, we also need a dummy rule,
> as otherwise it errors out with "No rules apply". Using a script:python
> rule appears unrelated and odd, but this is the shortest I could come up
> with.
>
> Adjust scripts/nsdeps accordingly to set the nsdeps rule when run trough
> `make nsdeps`.
>
> Suggested-by: Julia Lawall <julia.lawall@...ia.fr>
> Fixes: c7c4e29fb5a4 ("scripts: add_namespace: Fix coccicheck failed")
> Cc: YueHaibing <yuehaibing@...wei.com>
> Cc: jeyu@...nel.org
> Cc: cocci@...teme.lip6.fr
> Cc: stable@...r.kernel.org
> Signed-off-by: Matthias Maennich <maennich@...gle.com>
Acked-by: Julia Lawall <julia.lawall@...ia.fr>
Shuah reported the problem to me, so you could add
Reported-by: Shuah Khan <skhan@...uxfoundation.org>
> ---
> scripts/coccinelle/misc/add_namespace.cocci | 8 +++++++-
> scripts/nsdeps | 2 +-
> 2 files changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/coccinelle/misc/add_namespace.cocci b/scripts/coccinelle/misc/add_namespace.cocci
> index 99e93a6c2e24..cbf1614163cb 100644
> --- a/scripts/coccinelle/misc/add_namespace.cocci
> +++ b/scripts/coccinelle/misc/add_namespace.cocci
> @@ -6,6 +6,7 @@
> /// add a missing namespace tag to a module source file.
> ///
>
> +virtual nsdeps
> virtual report
>
> @has_ns_import@
> @@ -16,10 +17,15 @@ MODULE_IMPORT_NS(ns);
>
> // Add missing imports, but only adjacent to a MODULE_LICENSE statement.
> // That ensures we are adding it only to the main module source file.
> -@...import depends on !has_ns_import@
> +@...import depends on !has_ns_import && nsdeps@
> declarer name MODULE_LICENSE;
> expression license;
> identifier virtual.ns;
> @@
> MODULE_LICENSE(license);
> + MODULE_IMPORT_NS(ns);
> +
> +// Dummy rule for report mode that would otherwise be empty and make spatch
> +// fail ("No rules apply.")
> +@...ipt:python depends on report@
> +@@
> diff --git a/scripts/nsdeps b/scripts/nsdeps
> index 03a8e7cbe6c7..dab4c1a0e27d 100644
> --- a/scripts/nsdeps
> +++ b/scripts/nsdeps
> @@ -29,7 +29,7 @@ fi
>
> generate_deps_for_ns() {
> $SPATCH --very-quiet --in-place --sp-file \
> - $srctree/scripts/coccinelle/misc/add_namespace.cocci -D ns=$1 $2
> + $srctree/scripts/coccinelle/misc/add_namespace.cocci -D nsdeps -D ns=$1 $2
> }
>
> generate_deps() {
> --
> 2.27.0.rc2.251.g90737beb825-goog
>
>
Powered by blists - more mailing lists