Commit 55c75498 authored by Matthias Maennich's avatar Matthias Maennich Committed by Greg Kroah-Hartman

scripts: add dummy report mode to add_namespace.cocci

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: default avatarJulia Lawall <julia.lawall@inria.fr>
Fixes: c7c4e29f ("scripts: add_namespace: Fix coccicheck failed")
Cc: YueHaibing <yuehaibing@huawei.com>
Cc: jeyu@kernel.org
Cc: cocci@systeme.lip6.fr
Cc: stable@vger.kernel.org
Signed-off-by: default avatarMatthias Maennich <maennich@google.com>
Reported-by: default avatarShuah Khan <skhan@linuxfoundation.org>
Acked-by: default avatarJulia Lawall <julia.lawall@inria.fr>
Link: https://lore.kernel.org/r/20200604164145.173925-1-maennich@google.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 5962b8b2
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
/// add a missing namespace tag to a module source file. /// add a missing namespace tag to a module source file.
/// ///
virtual nsdeps
virtual report virtual report
@has_ns_import@ @has_ns_import@
...@@ -16,10 +17,15 @@ MODULE_IMPORT_NS(ns); ...@@ -16,10 +17,15 @@ MODULE_IMPORT_NS(ns);
// Add missing imports, but only adjacent to a MODULE_LICENSE statement. // Add missing imports, but only adjacent to a MODULE_LICENSE statement.
// That ensures we are adding it only to the main module source file. // That ensures we are adding it only to the main module source file.
@do_import depends on !has_ns_import@ @do_import depends on !has_ns_import && nsdeps@
declarer name MODULE_LICENSE; declarer name MODULE_LICENSE;
expression license; expression license;
identifier virtual.ns; identifier virtual.ns;
@@ @@
MODULE_LICENSE(license); MODULE_LICENSE(license);
+ MODULE_IMPORT_NS(ns); + MODULE_IMPORT_NS(ns);
// Dummy rule for report mode that would otherwise be empty and make spatch
// fail ("No rules apply.")
@script:python depends on report@
@@
...@@ -29,7 +29,7 @@ fi ...@@ -29,7 +29,7 @@ fi
generate_deps_for_ns() { generate_deps_for_ns() {
$SPATCH --very-quiet --in-place --sp-file \ $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() { generate_deps() {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment