Skip to content

Commit 91e6455

Browse files
windhlbebarino
authored andcommitted
clk: sprd: Hold reference returned by of_get_parent()
We should hold the reference returned by of_get_parent() and use it to call of_node_put() for refcount balance. Fixes: f95e8c7 ("clk: sprd: support to get regmap from parent node") Signed-off-by: Liang He <windhl@126.com> Link: https://lore.kernel.org/r/20220704004729.272481-1-windhl@126.com Reviewed-by: Orson Zhai <orsonzhai@gmail.com> Signed-off-by: Stephen Boyd <sboyd@kernel.org>
1 parent 37c381b commit 91e6455

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

drivers/clk/sprd/common.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ int sprd_clk_regmap_init(struct platform_device *pdev,
4141
{
4242
void __iomem *base;
4343
struct device *dev = &pdev->dev;
44-
struct device_node *node = dev->of_node;
44+
struct device_node *node = dev->of_node, *np;
4545
struct regmap *regmap;
4646

4747
if (of_find_property(node, "sprd,syscon", NULL)) {
@@ -50,9 +50,10 @@ int sprd_clk_regmap_init(struct platform_device *pdev,
5050
pr_err("%s: failed to get syscon regmap\n", __func__);
5151
return PTR_ERR(regmap);
5252
}
53-
} else if (of_device_is_compatible(of_get_parent(dev->of_node),
54-
"syscon")) {
55-
regmap = device_node_to_regmap(of_get_parent(dev->of_node));
53+
} else if (of_device_is_compatible(np = of_get_parent(node), "syscon") ||
54+
(of_node_put(np), 0)) {
55+
regmap = device_node_to_regmap(np);
56+
of_node_put(np);
5657
if (IS_ERR(regmap)) {
5758
dev_err(dev, "failed to get regmap from its parent.\n");
5859
return PTR_ERR(regmap);

0 commit comments

Comments
 (0)