]> www.infradead.org Git - users/willy/xarray.git/commitdiff
of: property: Do some clean up with use of __free()
authorZhang Zekun <zhangzekun11@huawei.com>
Fri, 30 Aug 2024 02:06:26 +0000 (10:06 +0800)
committerRob Herring (Arm) <robh@kernel.org>
Fri, 13 Sep 2024 19:01:34 +0000 (14:01 -0500)
__free() provides a scoped of_node_put() functionality to put the
device_node automatically, and we don't need to call of_node_put()
directly. Let's simplify the code a bit with the use of __free().

Signed-off-by: Zhang Zekun <zhangzekun11@huawei.com>
Link: https://lore.kernel.org/r/20240830020626.115933-4-zhangzekun11@huawei.com
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
drivers/of/property.c

index 164d77cb944585d6da7d4931a9fe5a121892841e..940324225c34f826e669682e33082ccbadd4e8a2 100644 (file)
@@ -773,16 +773,11 @@ EXPORT_SYMBOL(of_graph_get_port_parent);
 struct device_node *of_graph_get_remote_port_parent(
                               const struct device_node *node)
 {
-       struct device_node *np, *pp;
-
        /* Get remote endpoint node. */
-       np = of_graph_get_remote_endpoint(node);
-
-       pp = of_graph_get_port_parent(np);
+       struct device_node *np __free(device_node) =
+               of_graph_get_remote_endpoint(node);
 
-       of_node_put(np);
-
-       return pp;
+       return of_graph_get_port_parent(np);
 }
 EXPORT_SYMBOL(of_graph_get_remote_port_parent);
 
@@ -1064,19 +1059,15 @@ static void of_link_to_phandle(struct device_node *con_np,
                              struct device_node *sup_np,
                              u8 flags)
 {
-       struct device_node *tmp_np = of_node_get(sup_np);
+       struct device_node *tmp_np __free(device_node) = of_node_get(sup_np);
 
        /* Check that sup_np and its ancestors are available. */
        while (tmp_np) {
-               if (of_fwnode_handle(tmp_np)->dev) {
-                       of_node_put(tmp_np);
+               if (of_fwnode_handle(tmp_np)->dev)
                        break;
-               }
 
-               if (!of_device_is_available(tmp_np)) {
-                       of_node_put(tmp_np);
+               if (!of_device_is_available(tmp_np))
                        return;
-               }
 
                tmp_np = of_get_next_parent(tmp_np);
        }
@@ -1440,16 +1431,13 @@ static int of_link_property(struct device_node *con_np, const char *prop_name)
                }
 
                while ((phandle = s->parse_prop(con_np, prop_name, i))) {
-                       struct device_node *con_dev_np;
+                       struct device_node *con_dev_np __free(device_node) =
+                               s->get_con_dev ? s->get_con_dev(con_np) : of_node_get(con_np);
 
-                       con_dev_np = s->get_con_dev
-                                       ? s->get_con_dev(con_np)
-                                       : of_node_get(con_np);
                        matched = true;
                        i++;
                        of_link_to_phandle(con_dev_np, phandle, s->fwlink_flags);
                        of_node_put(phandle);
-                       of_node_put(con_dev_np);
                }
                s++;
        }