summaryrefslogtreecommitdiffstats
path: root/drivers/of/property.c
diff options
context:
space:
mode:
authorYang Yingliang <yangyingliang@huawei.com>2022-11-21 03:32:09 +0100
committerRob Herring <robh@kernel.org>2022-11-23 00:22:52 +0100
commit60d865bd5a9b15a3961eb1c08bd4155682a3c81e (patch)
treefc9dc1f7352df4fabc60adbd93f1cd219031c26a /drivers/of/property.c
parentMAINTAINERS: of: collapse overlay entry into main device tree entry (diff)
downloadlinux-60d865bd5a9b15a3961eb1c08bd4155682a3c81e.tar.xz
linux-60d865bd5a9b15a3961eb1c08bd4155682a3c81e.zip
of: property: decrement node refcount in of_fwnode_get_reference_args()
In of_fwnode_get_reference_args(), the refcount of of_args.np has been incremented in the case of successful return from of_parse_phandle_with_args() or of_parse_phandle_with_fixed_args(). Decrement the refcount if of_args is not returned to the caller of of_fwnode_get_reference_args(). Fixes: 3e3119d3088f ("device property: Introduce fwnode_property_get_reference_args") Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com> Reviewed-by: Frank Rowand <frowand.list@gmail.com> Link: https://lore.kernel.org/r/20221121023209.3909759-1-yangyingliang@huawei.com Signed-off-by: Rob Herring <robh@kernel.org>
Diffstat (limited to 'drivers/of/property.c')
-rw-r--r--drivers/of/property.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/of/property.c b/drivers/of/property.c
index 967f79b59016..134cfc980b70 100644
--- a/drivers/of/property.c
+++ b/drivers/of/property.c
@@ -993,8 +993,10 @@ of_fwnode_get_reference_args(const struct fwnode_handle *fwnode,
nargs, index, &of_args);
if (ret < 0)
return ret;
- if (!args)
+ if (!args) {
+ of_node_put(of_args.np);
return 0;
+ }
args->nargs = of_args.args_count;
args->fwnode = of_fwnode_handle(of_args.np);