Use __free cleanup handler which ensures that the resource is freed when it goes out of scope, thus removing the need to manually clean it up using of_node_put. Suggested-by: Julia Lawall <julia.lawall@xxxxxxxx> Signed-off-by: Shresth Prasad <shresthprasad7@xxxxxxxxx> --- Rob Herring <robh@xxxxxxxxxx> sent a patch fixing similar cases in property.c but seems to have missed this one. Please let me know if this is mistake, or if it was left unchanged for a reason. drivers/of/property.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/of/property.c b/drivers/of/property.c index 6d5ae58a7ac9..abc8613b471f 100644 --- a/drivers/of/property.c +++ b/drivers/of/property.c @@ -576,7 +576,8 @@ EXPORT_SYMBOL_GPL(of_prop_next_string); int of_graph_parse_endpoint(const struct device_node *node, struct of_endpoint *endpoint) { - struct device_node *port_node = of_get_parent(node); + struct device_node *port_node __free(device_node) = + of_get_parent(node); WARN_ONCE(!port_node, "%s(): endpoint %pOF has no parent node\n", __func__, node); @@ -591,8 +592,6 @@ int of_graph_parse_endpoint(const struct device_node *node, of_property_read_u32(port_node, "reg", &endpoint->port); of_property_read_u32(node, "reg", &endpoint->id); - of_node_put(port_node); - return 0; } EXPORT_SYMBOL(of_graph_parse_endpoint); -- 2.44.0