RE: [PATCH] of: remove the unnecessary of_node_put forof_parse_phandle_with_args()

From: Tang Yuantian-B29983
Date: Wed Apr 10 2013 - 05:06:22 EST



> -----Original Message-----
> From: Stephen Rothwell [mailto:sfr@xxxxxxxxxxxxxxxx]
> Sent: 2013年4月10日 17:03
> To: Tang Yuantian-B29983
> Cc: grant.likely@xxxxxxxxxxxx; devicetree-discuss@xxxxxxxxxxxxxxxx;
> linuxppc-dev@xxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> rob.herring@xxxxxxxxxxx
> Subject: Re: [PATCH] of: remove the unnecessary of_node_put for
> of_parse_phandle_with_args()
>
> Hi,
>
> On Tue, 9 Apr 2013 14:56:09 +0800 <Yuantian.Tang@xxxxxxxxxxxxx> wrote:
> >
> > From: Tang Yuantian <yuantian.tang@xxxxxxxxxxxxx>
> >
> > As the function itself says it is caller's responsibility to call the
> > of_node_put(). So, remove it on success to keep the reference count
> > correct.
> >
> > Signed-off-by: Tang Yuantian <Yuantian.Tang@xxxxxxxxxxxxx>
> > ---
> > drivers/of/base.c | 3 ---
> > 1 file changed, 3 deletions(-)
> >
> > diff --git a/drivers/of/base.c b/drivers/of/base.c index
> > 321d3ef..e8b4c28 100644
> > --- a/drivers/of/base.c
> > +++ b/drivers/of/base.c
> > @@ -1168,9 +1168,6 @@ static int __of_parse_phandle_with_args(const
> struct device_node *np,
> > out_args->args[i] = be32_to_cpup(list++);
> > }
> >
> > - /* Found it! return success */
> > - if (node)
> > - of_node_put(node);
>
> Actually, if out_args is NULL, you should do the of_node_put(node), so
> probably the correct fix is to add an "else" before the above "if" (and
> move the comment).
>

Yes, I already sent out the v2 patch.
Please see: http://patchwork.ozlabs.org/patch/235288/

Regards,
Yuantian

> --
> Cheers,
> Stephen Rothwell sfr@xxxxxxxxxxxxxxxx
> http://www.canb.auug.org.au/~sfr/
㈤旃??????+-遍荻?w??笔???dz罐??骅w*jg??????/??罐????璀??摺?囤??????:+v???佶>W?贽i?xPj??? -?+?d?