aboutsummaryrefslogtreecommitdiff
path: root/drivers/interconnect/core.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/interconnect/core.c')
-rw-r--r--drivers/interconnect/core.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/interconnect/core.c b/drivers/interconnect/core.c
index 9e1ab701785c..305b24e4a185 100644
--- a/drivers/interconnect/core.c
+++ b/drivers/interconnect/core.c
@@ -431,18 +431,16 @@ struct icc_path *of_icc_get_by_index(struct device *dev, int idx)
if (ret)
return ERR_PTR(ret);
- of_node_put(src_args.np);
-
ret = of_parse_phandle_with_args(np, "interconnects",
"#interconnect-cells", idx * 2 + 1,
&dst_args);
if (ret)
return ERR_PTR(ret);
- of_node_put(dst_args.np);
-
src_node = of_icc_get_from_provider(&src_args);
+ of_node_put(src_args.np);
+
if (IS_ERR(src_node)) {
if (PTR_ERR(src_node) != -EPROBE_DEFER)
dev_err(dev, "error finding src node: %ld\n",
@@ -452,6 +450,8 @@ struct icc_path *of_icc_get_by_index(struct device *dev, int idx)
dst_node = of_icc_get_from_provider(&dst_args);
+ of_node_put(dst_args.np);
+
if (IS_ERR(dst_node)) {
if (PTR_ERR(dst_node) != -EPROBE_DEFER)
dev_err(dev, "error finding dst node: %ld\n",