Re: [cocci] [PATCH] coccinelle: api: Don't use devm_platform_get_and_ioremap_resource with res==NULL

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Nov 07, 2022 at 08:00:33PM +0100, Markus Elfring wrote:
> 
> > devm_platform_get_and_ioremap_resource(pdev, index, NULL) is equivalent to
> > the shorter devm_platform_ioremap_resource(pdev, index).
> …
> >  create mode 100644 scripts/coccinelle/api/devm_platform_ioremap_resource.cocci
> …
> > +@depends on patch@
> > +expression pdev,index;
> > +position p != r1.p;
> 
> 
> Why do you think that different source code positions would be required for
> your transformation approach?

That is important that the implementation of
devm_platform_ioremap_resource isn't adapted.

> > +@@
> > +
> > +-  devm_platform_get_and_ioremap_resource@p(pdev, index, NULL)
> > ++  devm_platform_ioremap_resource(pdev, index)
> 
> I suggest to use the following SmPL code variant instead.
> 
> -devm_platform_get_and_ioremap_resource@p
> +devm_platform_ioremap_resource
>  (pdev, index
> - , NULL
>  )

I don't care much, but IMHO my variant is easier to read. Might be
subjective, though.
 
> > +@r2 depends on !patch exists@
> > +expression pdev,index;
> > +position p;
> > +@@
> > +
> > +*  devm_platform_get_and_ioremap_resource@p(pdev, index, NULL)
> 
> 
> I doubt that the usage of the SmPL asterisk is appropriate for the operation
> modes “org” and “report”.

I have no idea about org and report modes. When I try these I get a
python2 error message:

	uwe@taurus:~/gsrc/linux$ make coccicheck
	You have not explicitly specified the mode to use. Using default "report" mode.
	Available modes are the following: patch, report, context, org, chain
	You can specify the mode with "make coccicheck MODE=<mode>"
	Note however that some modes are not implemented by some semantic patches.

	Please check for false positives in the output before submitting a patch.
	When using "patch" mode, carefully review the patch before submitting it.

	/usr/bin/spatch -D report --no-show-diff --very-quiet --cocci-file ./scripts/coccinelle/api/alloc/alloc_cast.cocci --no-includes --include-headers --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/compiler-version.h --include ./include/linux/kconfig.h --jobs 4 --chunksize 1
	Py.find_library: unable to find the Python library [libpython2.7m.so returned libpython2.7m.so: cannot open shared object file: No such file or directory] [/usr/bin/../lib/libpython2.7m.so returned /usr/bin/../lib/libpython2.7m.so: cannot open shared object file: No such file or directory] [libpython2.7.so returned libpython2.7.so: cannot open shared object file: No such file or directory] [/usr/bin/../lib/libpython2.7.so returned /usr/bin/../lib/libpython2.7.so: cannot open shared object file: No such file or directory]
	coccicheck failed
	make: *** [Makefile:2076: coccicheck] Error 255

After uninstalling python2 this ends in:

	Cannot find Python library
	coccicheck failed
	make: *** [Makefile:2076: coccicheck] Error 255

Didn't try to debug that any further. Is that worth a bug report against
coccinelle (which is shipped by my distribution)?

I tried to adapt the org and report modes from other patches in the same
directory. So a critical glimpse by someone more knowledgable than me is
recommended. However I don't know how to react to "I doubt ... is
appropriate", I'd need a more constructive feedback to act on.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux