Re: [PATCH v3] Coccinelle: semantic patch for missing put_device()

From: Julia Lawall
Date: Wed Feb 13 2019 - 14:52:25 EST




On Wed, 13 Feb 2019, Markus Elfring wrote:

> > The of_find_device_by_node() takes a reference to the underlying device
> > structure, we should release that reference.
>
> I have got another concern for further software development considerations.
>
> How do you think about to describe here if it can be determined
> by source code analysis that the desired release should be performed
> only in the same function implementation (or not)?
>
> How much does this aspect influence the source code search confidence?
>
>
> > + when != e1 = (T)id
> > + when != e2 = &id->dev
> > + when != e3 = get_device(&id->dev)
> > + when != e4 = (T1)platform_get_drvdata(id)
>
> I have got another idea for a bit of software fine-tuning at such a place.
> I am unsure if it can become relevant to reduce the number of metavariables
> here by introducing a SmPL disjunction.
>
> + when != ex = \( (T)id \| &id->dev \| get_device(&id->dev) \| (T1)platform_get_drvdata(id) \)

There is no need for the disjunction. There is also no need for the
different variables. Different variables are only needed when the when
conditions are on different ...s

julia

>
>
> Regards,
> Markus
>