cocci.inria.fr archive mirror
 help / color / mirror / Atom feed
* [cocci] [PATCH v1] coccinelle: api: Don't use devm_platform_get_and_ioremap_resource with res==NULL
@ 2022-11-07 11:47 Uwe Kleine-König
  2022-11-07 12:45 ` Julia Lawall
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: Uwe Kleine-König @ 2022-11-07 11:47 UTC (permalink / raw)
  To: Julia Lawall, Nicolas Palix; +Cc: linux-kernel, cocci, kernel

devm_platform_get_and_ioremap_resource(pdev, index, NULL) is equivalent to
the shorter devm_platform_ioremap_resource(pdev, index).

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
Hello,

a potential improvement is to check for invocations of
devm_platform_get_and_ioremap_resource() where the res parameter isn't
used afterwards, but my coccinelle foo isn't strong enough for that.

Best regards
Uwe

 .../api/devm_platform_ioremap_resource.cocci  | 44 +++++++++++++++++++
 1 file changed, 44 insertions(+)
 create mode 100644 scripts/coccinelle/api/devm_platform_ioremap_resource.cocci

diff --git a/scripts/coccinelle/api/devm_platform_ioremap_resource.cocci b/scripts/coccinelle/api/devm_platform_ioremap_resource.cocci
new file mode 100644
index 000000000000..401610b9a17d
--- /dev/null
+++ b/scripts/coccinelle/api/devm_platform_ioremap_resource.cocci
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/// Don't use devm_platform_get_and_ioremap_resource with NULL as third parameter
+// Confidence: High
+
+virtual patch
+virtual context
+virtual org
+virtual report
+
+@r1@
+position p;
+@@
+ devm_platform_ioremap_resource(...) {
+	...
+	devm_platform_get_and_ioremap_resource@p(...)
+	...
+ }
+
+@depends on patch@
+expression pdev,index;
+position p != r1.p;
+@@
+
+-  devm_platform_get_and_ioremap_resource@p(pdev, index, NULL)
++  devm_platform_ioremap_resource(pdev, index)
+
+@r2 depends on !patch exists@
+expression pdev,index;
+position p;
+@@
+
+*  devm_platform_get_and_ioremap_resource@p(pdev, index, NULL)
+
+@script:python depends on org@
+p << r2.p;
+@@
+
+cocci.print_main("WARNING opportunity for devm_platform_ioremap_resource", p)
+
+@script:python depends on report@
+p << r2.p;
+@@
+
+coccilib.report.print_report(p[0], "WARNING opportunity for devm_platform_ioremap_resource")
-- 
2.38.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [cocci] [PATCH v1] coccinelle: api: Don't use devm_platform_get_and_ioremap_resource with res==NULL
  2022-11-07 11:47 [cocci] [PATCH v1] coccinelle: api: Don't use devm_platform_get_and_ioremap_resource with res==NULL Uwe Kleine-König
@ 2022-11-07 12:45 ` Julia Lawall
  2022-11-07 18:11   ` [cocci] [PATCH v2] " Uwe Kleine-König
  2022-11-07 19:00 ` [cocci] [PATCH] " Markus Elfring
  2022-11-09 18:50 ` Markus Elfring
  2 siblings, 1 reply; 14+ messages in thread
From: Julia Lawall @ 2022-11-07 12:45 UTC (permalink / raw)
  To: Uwe Kleine-König
  Cc: Julia Lawall, Nicolas Palix, linux-kernel, cocci, kernel

[-- Attachment #1: Type: text/plain, Size: 2111 bytes --]



On Mon, 7 Nov 2022, Uwe Kleine-König wrote:

> devm_platform_get_and_ioremap_resource(pdev, index, NULL) is equivalent to
> the shorter devm_platform_ioremap_resource(pdev, index).
>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> ---
> Hello,
>
> a potential improvement is to check for invocations of
> devm_platform_get_and_ioremap_resource() where the res parameter isn't
> used afterwards, but my coccinelle foo isn't strong enough for that.

... when != res

I'm not sure where you wanted to put it though.

julia

>
> Best regards
> Uwe
>
>  .../api/devm_platform_ioremap_resource.cocci  | 44 +++++++++++++++++++
>  1 file changed, 44 insertions(+)
>  create mode 100644 scripts/coccinelle/api/devm_platform_ioremap_resource.cocci
>
> diff --git a/scripts/coccinelle/api/devm_platform_ioremap_resource.cocci b/scripts/coccinelle/api/devm_platform_ioremap_resource.cocci
> new file mode 100644
> index 000000000000..401610b9a17d
> --- /dev/null
> +++ b/scripts/coccinelle/api/devm_platform_ioremap_resource.cocci
> @@ -0,0 +1,44 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +/// Don't use devm_platform_get_and_ioremap_resource with NULL as third parameter
> +// Confidence: High
> +
> +virtual patch
> +virtual context
> +virtual org
> +virtual report
> +
> +@r1@
> +position p;
> +@@
> + devm_platform_ioremap_resource(...) {
> +	...
> +	devm_platform_get_and_ioremap_resource@p(...)
> +	...
> + }
> +
> +@depends on patch@
> +expression pdev,index;
> +position p != r1.p;
> +@@
> +
> +-  devm_platform_get_and_ioremap_resource@p(pdev, index, NULL)
> ++  devm_platform_ioremap_resource(pdev, index)
> +
> +@r2 depends on !patch exists@
> +expression pdev,index;
> +position p;
> +@@
> +
> +*  devm_platform_get_and_ioremap_resource@p(pdev, index, NULL)
> +
> +@script:python depends on org@
> +p << r2.p;
> +@@
> +
> +cocci.print_main("WARNING opportunity for devm_platform_ioremap_resource", p)
> +
> +@script:python depends on report@
> +p << r2.p;
> +@@
> +
> +coccilib.report.print_report(p[0], "WARNING opportunity for devm_platform_ioremap_resource")
> --
> 2.38.1
>
>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [cocci] [PATCH v2] coccinelle: api: Don't use devm_platform_get_and_ioremap_resource with res==NULL
  2022-11-07 12:45 ` Julia Lawall
@ 2022-11-07 18:11   ` Uwe Kleine-König
  2022-11-10 15:07     ` Uwe Kleine-König
  0 siblings, 1 reply; 14+ messages in thread
From: Uwe Kleine-König @ 2022-11-07 18:11 UTC (permalink / raw)
  To: Julia Lawall; +Cc: kernel, Nicolas Palix, linux-kernel, cocci

[-- Attachment #1: Type: text/plain, Size: 3637 bytes --]

devm_platform_get_and_ioremap_resource(pdev, index, NULL) is equivalent to
the shorter devm_platform_ioremap_resource(pdev, index).

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
On Mon, Nov 07, 2022 at 08:45:38PM +0800, Julia Lawall wrote:
> On Mon, 7 Nov 2022, Uwe Kleine-König wrote:
> 
> > devm_platform_get_and_ioremap_resource(pdev, index, NULL) is equivalent to
> > the shorter devm_platform_ioremap_resource(pdev, index).
> >
> > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> > ---
> > Hello,
> >
> > a potential improvement is to check for invocations of
> > devm_platform_get_and_ioremap_resource() where the res parameter isn't
> > used afterwards, but my coccinelle foo isn't strong enough for that.
> 
> ... when != res
> 
> I'm not sure where you wanted to put it though.

I tinkered a bit further and even succeeded to remove the declaration if
it's otherwise unused.

I failed to test the report mode, my spatch tells me some error about
python2?!

Best regards
Uwe

 .../api/devm_platform_ioremap_resource.cocci  | 85 +++++++++++++++++++
 1 file changed, 85 insertions(+)
 create mode 100644 scripts/coccinelle/api/devm_platform_ioremap_resource.cocci

diff --git a/scripts/coccinelle/api/devm_platform_ioremap_resource.cocci b/scripts/coccinelle/api/devm_platform_ioremap_resource.cocci
new file mode 100644
index 000000000000..485dfa6ea0aa
--- /dev/null
+++ b/scripts/coccinelle/api/devm_platform_ioremap_resource.cocci
@@ -0,0 +1,85 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/// Don't use devm_platform_get_and_ioremap_resource with NULL as third parameter
+// Confidence: High
+
+virtual patch
+virtual context
+virtual org
+virtual report
+
+@r1@
+position p;
+@@
+ devm_platform_ioremap_resource(...) {
+	...
+	devm_platform_get_and_ioremap_resource@p(...)
+	...
+ }
+
+@depends on patch@
+expression pdev,index;
+position p != r1.p;
+@@
+
+-  devm_platform_get_and_ioremap_resource@p(pdev, index, NULL)
++  devm_platform_ioremap_resource(pdev, index)
+
+@depends on patch@
+expression pdev,index;
+identifier res;
+type T;
+@@
+-  T res;
+   ... when != res
+-  devm_platform_get_and_ioremap_resource(pdev, index, &res)
++  devm_platform_ioremap_resource(pdev, index)
+   ... when != res
+
+@depends on patch@
+expression pdev,index;
+identifier res;
+@@
+
+-  devm_platform_get_and_ioremap_resource(pdev, index, &res)
++  devm_platform_ioremap_resource(pdev, index)
+   ... when != res
+
+@r2 depends on !patch exists@
+expression pdev,index;
+position p;
+@@
+
+*  devm_platform_get_and_ioremap_resource@p(pdev, index, NULL)
+
+@script:python depends on org@
+p << r2.p;
+@@
+
+cocci.print_main("WARNING opportunity for devm_platform_ioremap_resource", p)
+
+@script:python depends on report@
+p << r2.p;
+@@
+
+coccilib.report.print_report(p[0], "WARNING opportunity for devm_platform_ioremap_resource")
+
+@r3 depends on !patch exists@
+expression pdev,index;
+identifier res;
+position p;
+@@
+
+*  devm_platform_get_and_ioremap_resource@p(pdev, index, &res)
+   ... when != res
+
+@script:python depends on org@
+p << r3.p;
+@@
+
+cocci.print_main("WARNING opportunity for devm_platform_ioremap_resource", p)
+
+@script:python depends on report@
+p << r3.p;
+@@
+
+coccilib.report.print_report(p[0], "WARNING opportunity for devm_platform_ioremap_resource")
-- 
2.38.1


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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [cocci] [PATCH] coccinelle: api: Don't use devm_platform_get_and_ioremap_resource with res==NULL
  2022-11-07 11:47 [cocci] [PATCH v1] coccinelle: api: Don't use devm_platform_get_and_ioremap_resource with res==NULL Uwe Kleine-König
  2022-11-07 12:45 ` Julia Lawall
@ 2022-11-07 19:00 ` Markus Elfring
  2022-11-07 20:08   ` Uwe Kleine-König
  2022-11-09 18:50 ` Markus Elfring
  2 siblings, 1 reply; 14+ messages in thread
From: Markus Elfring @ 2022-11-07 19:00 UTC (permalink / raw)
  To: Uwe Kleine-König, cocci
  Cc: Julia Lawall, Nicolas Palix, linux-kernel, kernel-janitors, kernel


> 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?



> +@@
> +
> +-  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
 )



> +@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”.

Regards,
Markus


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [cocci] [PATCH] coccinelle: api: Don't use devm_platform_get_and_ioremap_resource with res==NULL
  2022-11-07 19:00 ` [cocci] [PATCH] " Markus Elfring
@ 2022-11-07 20:08   ` Uwe Kleine-König
  2022-11-07 21:40     ` Markus Elfring
                       ` (3 more replies)
  0 siblings, 4 replies; 14+ messages in thread
From: Uwe Kleine-König @ 2022-11-07 20:08 UTC (permalink / raw)
  To: Markus Elfring
  Cc: cocci, Julia Lawall, kernel-janitors, Nicolas Palix,
	linux-kernel, kernel

[-- Attachment #1: Type: text/plain, Size: 3678 bytes --]

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 #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [cocci] [PATCH] coccinelle: api: Don't use devm_platform_get_and_ioremap_resource with res==NULL
  2022-11-07 20:08   ` Uwe Kleine-König
@ 2022-11-07 21:40     ` Markus Elfring
  2022-11-08  5:51     ` Julia Lawall
                       ` (2 subsequent siblings)
  3 siblings, 0 replies; 14+ messages in thread
From: Markus Elfring @ 2022-11-07 21:40 UTC (permalink / raw)
  To: Uwe Kleine-König, cocci
  Cc: Julia Lawall, Nicolas Palix, linux-kernel, kernel-janitors, kernel


>>> 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.


Can this design desire result in an other solution approach for a possible
script with the semantic patch language?


>>> +@@
>>> +
>>> +-  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,


I propose to reconsider this view a bit more.



> but IMHO my variant is easier to read.


This can be.

I am trying again to point further development concerns out.


Would you occasionally like to modify only essential source code places?



> Might be subjective, though.


Yes, of course.



>>> +@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.


Please take another look at relevant application differences.



> When I try these I get a python2 error message:


How do you think about to switch to a newer version of the interpreter for
the Python programming language?

Regards,
Markus


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [cocci] [PATCH] coccinelle: api: Don't use devm_platform_get_and_ioremap_resource with res==NULL
  2022-11-07 20:08   ` Uwe Kleine-König
  2022-11-07 21:40     ` Markus Elfring
@ 2022-11-08  5:51     ` Julia Lawall
  2022-11-08  7:55       ` Nicolas Palix
  2022-11-08 19:40     ` [cocci] [PATCH] " Markus Elfring
  2022-11-09 18:00     ` Markus Elfring
  3 siblings, 1 reply; 14+ messages in thread
From: Julia Lawall @ 2022-11-08  5:51 UTC (permalink / raw)
  To: Uwe Kleine-König
  Cc: Markus Elfring, cocci, kernel-janitors, nicolas palix,
	linux-kernel, kernel


> 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.

I'm not a python expert, so I'm not sure what to do about this python2 vs python3 problem.  Is there some strategy for printing that works in both of them?

julia

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [cocci] [PATCH] coccinelle: api: Don't use devm_platform_get_and_ioremap_resource with res==NULL
  2022-11-08  5:51     ` Julia Lawall
@ 2022-11-08  7:55       ` Nicolas Palix
  2022-11-08  9:54         ` Uwe Kleine-König
  0 siblings, 1 reply; 14+ messages in thread
From: Nicolas Palix @ 2022-11-08  7:55 UTC (permalink / raw)
  To: Julia Lawall, Uwe Kleine-König
  Cc: Markus Elfring, cocci, kernel-janitors, nicolas palix,
	linux-kernel, kernel

Hi all,

On 08/11/2022 06:51, Julia Lawall wrote:
> 
>> 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.
> 
> I'm not a python expert, so I'm not sure what to do about this python2 vs python3 problem.  Is there some strategy for printing that works in both of them?

It sounds like a missing dependency in the package system of the 
distribution. Coccinelle has been build with Python support, but
some libraries are missing.

Which distribution is it ?
Can you install some packages that provide the two missing shared 
librairies ?

> 
> julia

-- 
Nicolas Palix
+33 4 574 21538


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [cocci] [PATCH] coccinelle: api: Don't use devm_platform_get_and_ioremap_resource with res==NULL
  2022-11-08  7:55       ` Nicolas Palix
@ 2022-11-08  9:54         ` Uwe Kleine-König
  2022-11-08 12:21           ` [cocci] " Markus Elfring
  0 siblings, 1 reply; 14+ messages in thread
From: Uwe Kleine-König @ 2022-11-08  9:54 UTC (permalink / raw)
  To: Nicolas Palix
  Cc: Julia Lawall, nicolas palix, kernel-janitors, linux-kernel,
	Markus Elfring, kernel, cocci

[-- Attachment #1: Type: text/plain, Size: 1520 bytes --]

Hello,

On Tue, Nov 08, 2022 at 08:55:04AM +0100, Nicolas Palix wrote:
> On 08/11/2022 06:51, Julia Lawall wrote:
> > 
> > > 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.
> > 
> > I'm not a python expert, so I'm not sure what to do about this python2 vs python3 problem.  Is there some strategy for printing that works in both of them?
> 
> It sounds like a missing dependency in the package system of the
> distribution. Coccinelle has been build with Python support, but
> some libraries are missing.
> 
> Which distribution is it ?
> Can you install some packages that provide the two missing shared librairies
> ?

After installing python-is-python3 (which provides a symlink
/usr/bin/python -> python3) it works. This is on Debian testing.

Best regards
Uwe

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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [cocci] coccinelle: api: Don't use devm_platform_get_and_ioremap_resource with res==NULL
  2022-11-08  9:54         ` Uwe Kleine-König
@ 2022-11-08 12:21           ` Markus Elfring
  0 siblings, 0 replies; 14+ messages in thread
From: Markus Elfring @ 2022-11-08 12:21 UTC (permalink / raw)
  To: Uwe Kleine-König
  Cc: Nicolas Palix, Julia Lawall, kernel-janitors, linux-kernel,
	kernel, cocci, Nicolas Palix

> After installing python-is-python3 (which provides a symlink
> /usr/bin/python -> python3) it works. This is on Debian testing.

Would you occasionally like to use the parameter “--python” for the program “spatch”?

Regards,
Markus

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [cocci] [PATCH] coccinelle: api: Don't use devm_platform_get_and_ioremap_resource with res==NULL
  2022-11-07 20:08   ` Uwe Kleine-König
  2022-11-07 21:40     ` Markus Elfring
  2022-11-08  5:51     ` Julia Lawall
@ 2022-11-08 19:40     ` Markus Elfring
  2022-11-09 18:00     ` Markus Elfring
  3 siblings, 0 replies; 14+ messages in thread
From: Markus Elfring @ 2022-11-08 19:40 UTC (permalink / raw)
  To: Uwe Kleine-König, Julia Lawall, Nicolas Palix, cocci
  Cc: kernel-janitors, linux-kernel, kernel

>>> devm_platform_get_and_ioremap_resource(pdev, index, NULL) is equivalent to
>>> the shorter devm_platform_ioremap_resource(pdev, index).

Would you like to add an imperative wording to the patch description?
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?h=v6.1-rc4#n94



> I have no idea about org and report modes.


Do you get any additional development ideas from information of previous messages?

Example:
2020-09-07
[PATCH v2] Coccinelle: api: Add SmPL script “use_devm_platform_get_and_ioremap_resource.cocci”
https://www.mail-archive.com/cocci@systeme.lip6.fr/msg08157.html
https://lkml.org/lkml/2020/9/7/960


> After uninstalling python2 this ends in:
>
> 	Cannot find Python library
> 	coccicheck failed
> 	make: *** [Makefile:2076: coccicheck] Error 255


With which script language versions are you going to work further?


> So a critical glimpse by someone more knowledgable than me is recommended.


I am curious how such patch reviews will evolve further.


> However I don't know how to react to "I doubt ... is appropriate",
> I'd need a more constructive feedback to act on.

How do you think about to improve the knowledge for applied data output formats?

Regards,
Markus

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [cocci] [PATCH] coccinelle: api: Don't use devm_platform_get_and_ioremap_resource with res==NULL
  2022-11-07 20:08   ` Uwe Kleine-König
                       ` (2 preceding siblings ...)
  2022-11-08 19:40     ` [cocci] [PATCH] " Markus Elfring
@ 2022-11-09 18:00     ` Markus Elfring
  3 siblings, 0 replies; 14+ messages in thread
From: Markus Elfring @ 2022-11-09 18:00 UTC (permalink / raw)
  To: Uwe Kleine-König, Julia Lawall, Nicolas Palix
  Cc: cocci, kernel-janitors, linux-kernel, kernel

>>> 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.


You would like to exclude the modification of a known function implementation.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/base/platform.c?h=v6.1-rc4#n112
https://elixir.bootlin.com/linux/v6.1-rc4/source/drivers/base/platform.c#L112



>>> +@@
>>> +
>>> +-  devm_platform_get_and_ioremap_resource@p(pdev, index, NULL)
>>> ++  devm_platform_ioremap_resource(pdev, index)


Can the following SmPL code variant be more appropriate?

@preserve@
@@
 devm_platform_ioremap_resource(...)
 { ... }

@replacement depends on !preserve && patch@
expression pdev, index;
@@
-devm_platform_get_and_ioremap_resource
+devm_platform_ioremap_resource
 (pdev, index
- , NULL
 )


Regards,
Markus


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [cocci] [PATCH] coccinelle: api: Don't use devm_platform_get_and_ioremap_resource with res==NULL
  2022-11-07 11:47 [cocci] [PATCH v1] coccinelle: api: Don't use devm_platform_get_and_ioremap_resource with res==NULL Uwe Kleine-König
  2022-11-07 12:45 ` Julia Lawall
  2022-11-07 19:00 ` [cocci] [PATCH] " Markus Elfring
@ 2022-11-09 18:50 ` Markus Elfring
  2 siblings, 0 replies; 14+ messages in thread
From: Markus Elfring @ 2022-11-09 18:50 UTC (permalink / raw)
  To: Uwe Kleine-König, Julia Lawall, Nicolas Palix, cocci
  Cc: kernel-janitors, linux-kernel, kernel

>  create mode 100644 scripts/coccinelle/api/devm_platform_ioremap_resource.cocci


Can the file name “use_devm_platform_ioremap_resource.cocci” be a bit nicer?


> +@script:python depends on org@
> +p << r2.p;
> +@@
> +
> +cocci.print_main("WARNING opportunity for devm_platform_ioremap_resource", p)


Can the following statement variant be more appropriate?

coccilib.org.print_todo(p[0], "WARNING: opportunity for devm_platform_ioremap_resource()")


Regards,
Markus


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [cocci] [PATCH v2] coccinelle: api: Don't use devm_platform_get_and_ioremap_resource with res==NULL
  2022-11-07 18:11   ` [cocci] [PATCH v2] " Uwe Kleine-König
@ 2022-11-10 15:07     ` Uwe Kleine-König
  0 siblings, 0 replies; 14+ messages in thread
From: Uwe Kleine-König @ 2022-11-10 15:07 UTC (permalink / raw)
  To: Julia Lawall; +Cc: Nicolas Palix, linux-kernel, kernel, cocci

[-- Attachment #1: Type: text/plain, Size: 1459 bytes --]

Hello,

On Mon, Nov 07, 2022 at 07:11:35PM +0100, Uwe Kleine-König wrote:
> devm_platform_get_and_ioremap_resource(pdev, index, NULL) is equivalent to
> the shorter devm_platform_ioremap_resource(pdev, index).
> 
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> ---
> On Mon, Nov 07, 2022 at 08:45:38PM +0800, Julia Lawall wrote:
> > On Mon, 7 Nov 2022, Uwe Kleine-König wrote:
> > 
> > > devm_platform_get_and_ioremap_resource(pdev, index, NULL) is equivalent to
> > > the shorter devm_platform_ioremap_resource(pdev, index).
> > >
> > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> > > ---
> > > Hello,
> > >
> > > a potential improvement is to check for invocations of
> > > devm_platform_get_and_ioremap_resource() where the res parameter isn't
> > > used afterwards, but my coccinelle foo isn't strong enough for that.
> > 
> > ... when != res
> > 
> > I'm not sure where you wanted to put it though.
> 
> I tinkered a bit further and even succeeded to remove the declaration if
> it's otherwise unused.
> 
> I failed to test the report mode, my spatch tells me some error about
> python2?!

For the record, that is a problem with Debian's coccinelle, bugreport 
at https://bugs.debian.org/1023653

Best regards
Uwe

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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2022-11-11  1:25 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-07 11:47 [cocci] [PATCH v1] coccinelle: api: Don't use devm_platform_get_and_ioremap_resource with res==NULL Uwe Kleine-König
2022-11-07 12:45 ` Julia Lawall
2022-11-07 18:11   ` [cocci] [PATCH v2] " Uwe Kleine-König
2022-11-10 15:07     ` Uwe Kleine-König
2022-11-07 19:00 ` [cocci] [PATCH] " Markus Elfring
2022-11-07 20:08   ` Uwe Kleine-König
2022-11-07 21:40     ` Markus Elfring
2022-11-08  5:51     ` Julia Lawall
2022-11-08  7:55       ` Nicolas Palix
2022-11-08  9:54         ` Uwe Kleine-König
2022-11-08 12:21           ` [cocci] " Markus Elfring
2022-11-08 19:40     ` [cocci] [PATCH] " Markus Elfring
2022-11-09 18:00     ` Markus Elfring
2022-11-09 18:50 ` Markus Elfring

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).