From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dong Aisheng Subject: [PATCH v4 3/6] of: release node fix for of_parse_phandle_with_args Date: Fri, 25 May 2012 21:36:17 +0800 Message-ID: <1337952980-14621-3-git-send-email-b29396@freescale.com> References: <1337952980-14621-1-git-send-email-b29396@freescale.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: In-Reply-To: <1337952980-14621-1-git-send-email-b29396@freescale.com> Sender: linux-kernel-owner@vger.kernel.org To: linux-kernel@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org, linus.walleij@stericsson.com, swarren@wwwdotorg.org, devicetree-discuss@lists.ozlabs.org, grant.likely@secretlab.ca, rob.herring@calxeda.com, b29396@freescale.com List-Id: devicetree@vger.kernel.org From: Dong Aisheng Since this API requires user to call of_node_put for the node it returned via outargs, if no outargs provided, user have no chance to release it, so release it internally if no outargs provided. Signed-off-by: Dong Aisheng --- drivers/of/base.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/drivers/of/base.c b/drivers/of/base.c index d9bfd49..91c1fb4 100644 --- a/drivers/of/base.c +++ b/drivers/of/base.c @@ -961,6 +961,8 @@ int of_parse_phandle_with_args(struct device_node *np, const char *list_name, out_args->args_count = count; for (i = 0; i < count; i++) out_args->args[i] = be32_to_cpup(list++); + } else { + of_node_put(node); } return 0; } -- 1.7.0.4