Re: [RFC PATCH] scripts: Fix coccicheck failed

From: Matthias Maennich
Date: Tue Oct 01 2019 - 08:57:50 EST


Hi Yuehaibing!

On Mon, Sep 30, 2019 at 10:32:18AM +0800, Yuehaibing wrote:
On 2019/9/30 0:32, Julia Lawall wrote:


On Sun, 29 Sep 2019, Yuehaibing wrote:

On 2019/9/28 20:43, Julia Lawall wrote:


On Sat, 28 Sep 2019, YueHaibing wrote:

Run make coccicheck, I got this:

spatch -D patch --no-show-diff --very-quiet --cocci-file
./scripts/coccinelle/misc/add_namespace.cocci --dir .
-I ./arch/x86/include -I ./arch/x86/include/generated
-I ./include -I ./arch/x86/include/uapi
-I ./arch/x86/include/generated/uapi -I ./include/uapi
-I ./include/generated/uapi --include ./include/linux/kconfig.h
--jobs 192 --chunksize 1

virtual rule patch not supported
coccicheck failed

It seems add_namespace.cocci cannot be called in coccicheck.

Could you explain the issue better? Does the current state cause make
coccicheck to fail? Or is it just silently not being called?

Yes, it cause make coccicheck failed like this:

...
./drivers/xen/xenbus/xenbus_comms.c:290:2-8: preceding lock on line 243
./fs/fuse/dev.c:1227:2-8: preceding lock on line 1206
./fs/fuse/dev.c:1232:3-9: preceding lock on line 1206
coccicheck failed
make[1]: *** [coccicheck] Error 255
make: *** [sub-make] Error 2

Could you set the verbose options to see what the problem is? Maybe the
problem would be solved by putting virtual report at the top of the rule.
But it might still fail because nothing can happen without a value for the
virtual metavariable ns.

diff --git a/scripts/coccinelle/misc/add_namespace.cocci b/scripts/coccinelle/misc/add_namespace.cocci
index c832bb6445a8..99e93a6c2e24 100644
--- a/scripts/coccinelle/misc/add_namespace.cocci
+++ b/scripts/coccinelle/misc/add_namespace.cocci
@@ -6,6 +6,8 @@
/// add a missing namespace tag to a module source file.
///

+virtual report
+
@has_ns_import@
declarer name MODULE_IMPORT_NS;
identifier virtual.ns;



Adding virtual report make the coccicheck go ahead smoothly.

Thanks for reporting and following up with this issue. I certainly did
not expect all scripts in scripts/coccinelle to be automatically called
by coccicheck and I still think scripts/coccinelle is the right location
for add_namespace.cocci.

I guess, others might better understand the implications of your two
lines fix above, but it looks good to me to address the problem.

Thanks!


Should the coccinelle directory be only for things that work with make
coccicheck, or for all Coccinelle scripts?

At least I was not expecting this behaviour. Though scripts/ hosts
scripts of various languages, I still think putting all coccinelle
scripts in scripts/coccinelle sounds sensible.


julia

.



Cheers,
Matthias