Hi Grant.likely,

I really preciate if you can spend some times to review this patch.

Thanks,
Yuantian

> -----Original Message-----
> From: Tang Yuantian-B29983
> Sent: 2013年4月10日 11:37
> To: grant.lik...@secretlab.ca
> Cc: rob.herr...@calxeda.com; devicetree-disc...@lists.ozlabs.org; linux-
> ker...@vger.kernel.org; linuxppc-dev@lists.ozlabs.org; Tang Yuantian-
> B29983; Tang Yuantian-B29983
> Subject: [PATCH v2] of/base: release the node correctly in
> of_parse_phandle_with_args()
> 
> From: Tang Yuantian <yuantian.t...@freescale.com>
> 
> Call of_node_put() only when the out_args is NULL on success, or the
> node's reference count will not be correct because the caller will call
> of_node_put() again.
> 
> Signed-off-by: Tang Yuantian <yuantian.t...@freescale.com>
> ---
> v2:
>       - modified the title and description. the 1st patch title is:
>         of: remove the unnecessary of_node_put for
> of_parse_phandle_with_args()
>         the 1st patch is not good enough.
> 
>  drivers/of/base.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/of/base.c b/drivers/of/base.c index 321d3ef..ee94f64
> 100644
> --- a/drivers/of/base.c
> +++ b/drivers/of/base.c
> @@ -1158,6 +1158,7 @@ static int __of_parse_phandle_with_args(const
> struct device_node *np,
>                       if (!phandle)
>                               goto err;
> 
> +                     /* Found it! return success */
>                       if (out_args) {
>                               int i;
>                               if (WARN_ON(count > MAX_PHANDLE_ARGS)) @@ -
> 1166,11 +1167,10 @@ static int __of_parse_phandle_with_args(const struct
> device_node *np,
>                               out_args->args_count = count;
>                               for (i = 0; i < count; i++)
>                                       out_args->args[i] = 
> be32_to_cpup(list++);
> +                     } else if (node) {
> +                             of_node_put(node);
>                       }
> 
> -                     /* Found it! return success */
> -                     if (node)
> -                             of_node_put(node);
>                       return 0;
>               }
> 
> --
> 1.8.0

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to