regulator: rk808: Fix missing of_node_put
authorAxel Lin <axel.lin@ingics.com>
Thu, 11 Sep 2014 10:22:48 +0000 (18:22 +0800)
committerMark Brown <broonie@kernel.org>
Fri, 12 Sep 2014 13:53:09 +0000 (14:53 +0100)
1. Pass &pdev->dev rather than &client->dev to of_regulator_match, the *dev
   argument is used for devres to ensure devm_of_regulator_put_matches() will
   be called when unload the module.

2. of_get_child_by_name() returns a node pointer with refcount incremented.
   Thus add missing of_node_put(reg_np).

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/regulator/rk808-regulator.c

index 9557428..07b0eb4 100644 (file)
@@ -281,8 +281,9 @@ static int rk808_regulator_probe(struct platform_device *pdev)
        if (!reg_np)
                return -ENXIO;
 
-       ret = of_regulator_match(&client->dev, reg_np, rk808_reg_matches,
+       ret = of_regulator_match(&pdev->dev, reg_np, rk808_reg_matches,
                                 RK808_NUM_REGULATORS);
+       of_node_put(reg_np);
        if (ret < 0)
                return ret;