diff mbox

regulator: mc13xxx: add missing of_node_get()

Message ID 1410260825-21667-1-git-send-email-guodong.xu@linaro.org (mailing list archive)
State New, archived
Headers show

Commit Message

Guodong Xu Sept. 9, 2014, 11:07 a.m. UTC
mc13xxx_parse_regulators_dt() goes through dt tree to search for regulator
sub-nodes. For each matched node, later on it will be used and registered
into a regulator_dev.

of_node_get() should be called to increase its refcount.

Signed-off-by: Guodong Xu <guodong.xu@linaro.org>
---
 drivers/regulator/mc13xxx-regulator-core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Axel Lin Sept. 9, 2014, 11:11 a.m. UTC | #1
2014-09-09 19:07 GMT+08:00 Guodong Xu <guodong.xu@linaro.org>:
> mc13xxx_parse_regulators_dt() goes through dt tree to search for regulator
> sub-nodes. For each matched node, later on it will be used and registered
> into a regulator_dev.
>
> of_node_get() should be called to increase its refcount.

I think it's done by regulator core:

commit 63c7c9e16c8e92cc069854f2babdf82d2d38e4c7
regulator: core: Get and put regulator of_node

Regards,
Axel
Mark Brown Sept. 9, 2014, 11:22 a.m. UTC | #2
On Tue, Sep 09, 2014 at 07:11:46PM +0800, Axel Lin wrote:
> 2014-09-09 19:07 GMT+08:00 Guodong Xu <guodong.xu@linaro.org>:
> > mc13xxx_parse_regulators_dt() goes through dt tree to search for regulator
> > sub-nodes. For each matched node, later on it will be used and registered
> > into a regulator_dev.
> >
> > of_node_get() should be called to increase its refcount.

> I think it's done by regulator core:

> commit 63c7c9e16c8e92cc069854f2babdf82d2d38e4c7
> regulator: core: Get and put regulator of_node

Yes, that's the idea anyway.  It's possible this is buggy though.
diff mbox

Patch

diff --git a/drivers/regulator/mc13xxx-regulator-core.c b/drivers/regulator/mc13xxx-regulator-core.c
index afba024..ebc8ff1 100644
--- a/drivers/regulator/mc13xxx-regulator-core.c
+++ b/drivers/regulator/mc13xxx-regulator-core.c
@@ -195,7 +195,7 @@  struct mc13xxx_regulator_init_data *mc13xxx_parse_regulators_dt(
 				p->id = i;
 				p->init_data = of_get_regulator_init_data(
 							&pdev->dev, child);
-				p->node = child;
+				p->node = of_node_get(child);
 				p++;
 
 				parsed++;