Messages in this thread | | | Date | Sat, 25 Feb 2023 20:17:01 +0100 (CET) | From | Julia Lawall <> | Subject | Re: [PATCH] coccinelle: put_device: Include of_node_put to avoid false positives |
| |
> The node reference increased by of_find_device_by_node() can also be > released by using a call to of_node_put(). Hence when this exists, the > script should not trigger a warning, which otherwise will be a false > positive.
Could you explain more about why of_node_put is sufficient?
thanks, julia
> Also, improve the warning message to include of_node_put too is missing. > > Signed-off-by: Deepak R Varma <drv@mailo.com> > --- > scripts/coccinelle/free/put_device.cocci | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/scripts/coccinelle/free/put_device.cocci > b/scripts/coccinelle/free/put_device.cocci > index f09f1e79bfa6..259195b501aa 100644 > --- a/scripts/coccinelle/free/put_device.cocci > +++ b/scripts/coccinelle/free/put_device.cocci > @@ -18,8 +18,10 @@ type T,T1,T2,T3; > > id = of_find_device_by_node@p1(x) > ... when != e = id > + when != of_node_put(x) > if (id == NULL || ...) { ... return ...; } > ... when != put_device(&id->dev) > + when != of_node_put(x) > when != platform_device_put(id) > when != if (id) { ... put_device(&id->dev) ... } > when != e1 = (T)id > @@ -42,7 +44,7 @@ p2 << search.p2; > @@ > > coccilib.report.print_report(p2[0], > - "ERROR: missing put_device; call > of_find_device_by_node on line " > + "ERROR: missing put_device or of_node_put; call > of_find_device_by_node on line " > + p1[0].line > + ", but without a corresponding object release within this function.") > > -- > 2.34.1
| |