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

From: Markus Elfring
Date: Wed Feb 13 2019 - 13:31:11 EST


> 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) \)


Regards,
Markus