2019-09-08 12:58:37

by Julia Lawall

[permalink] [raw]
Subject: Re: Coccinelle: pci_free_consistent: Checking when constraints



On Sun, 8 Sep 2019, Markus Elfring wrote:

> Hello,
>
> I have taken another look at a known script for the semantic patch language.
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/scripts/coccinelle/free/pci_free_consistent.cocci?id=950b07c14e8c59444e2359f15fd70ed5112e11a0#n2
>
> The following SmPL code is used there so far.
>
> …
> ... when != pci_free_consistent(x,y,id,z)
> when != if (id) { ... pci_free_consistent(x,y,id,z) ... }
> when != if (y) { ... pci_free_consistent(x,y,id,z) ... }
> …
>
>
> It is specified that a specific function call should be excluded
> in a source code search.
> I do not see a need to repeat the specification twice that such a call
> could eventually happen also within a branch of another if statement.
> How do you think about to omit possibly redundant SmPL code at this place?

Have you actually run the rule and checked the impact of your proposed
change?

The when exists below these lines has an impact. I believe that the rule
is ok as is. A single path may have no call to pci_free_consistent, but
if it has that call under one of the mentioned ifs, then the path is still
ok, and not something that an error should be reported about.

julia


2019-09-08 14:47:07

by Markus Elfring

[permalink] [raw]
Subject: Re: Coccinelle: pci_free_consistent: Checking when constraints

> The when exists below these lines has an impact.

This parameter should result in a desirable effect.


> I believe that the rule is ok as is.

I wonder about the relevance of the shown double if statement exclusion.


> A single path may have no call to pci_free_consistent,

We come along different views around the provided software functionality
once more.


> but if it has that call under one of the mentioned ifs,
> then the path is still ok,

I find that this information can need further clarification.


> and not something that an error should be reported about.

I do not expect an error message from the SmPL script execution here.

I just try again to clarify if the specification of a single function call
exclusion can (and should) be sufficient also at this place.

Regards,
Markus