Re: [RFC PATCH] scripts: Fix coccicheck failed

From: Julia Lawall
Date: Tue Oct 01 2019 - 09:01:10 EST




On Mon, 30 Sep 2019, 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.

Acked-by: Julia Lawall <julia.lawall@xxxxxxx>

Thanks.


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