On 02.06.2020 10:21, Krzysztof Kozlowski wrote:
+static struct icc_node *exynos_icc_get_parent(struct device_node *np) +{
- struct of_phandle_args args;
- int num, ret;
- num = of_count_phandle_with_args(np, "samsung,interconnect-parent",
"#interconnect-cells");
- if (num != 1)
return NULL; /* parent nodes are optional */
- ret = of_parse_phandle_with_args(np, "samsung,interconnect-parent",
"#interconnect-cells", 0, &args);
- if (ret < 0)
return ERR_PTR(ret);
- of_node_put(args.np);
- return of_icc_get_from_provider(&args);
I think of_node_put() should happen after of_icc_get_from_provider().
Indeed, thanks, I will amend that. It seems the node reference count decrementing is often not done properly after existing calls to of_parse_phandle_with_args().