]> www.infradead.org Git - users/willy/xarray.git/commitdiff
of/platform: Simplify with scoped for each OF child
authorJinjie Ruan <ruanjinjie@huawei.com>
Mon, 26 Aug 2024 06:24:07 +0000 (14:24 +0800)
committerRob Herring (Arm) <robh@kernel.org>
Mon, 26 Aug 2024 15:50:46 +0000 (10:50 -0500)
Use scoped for_each_child_of_node_scoped() when iterating over device
nodes to make code a bit simpler.

Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
Link: https://lore.kernel.org/r/20240826062408.2406734-3-ruanjinjie@huawei.com
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
drivers/of/platform.c

index 389d4ea6bfc1591dee8321e99a322916c23b9017..1c4d46de01497779521faaa81abd997d1b9b5223 100644 (file)
@@ -338,7 +338,6 @@ static int of_platform_bus_create(struct device_node *bus,
                                  struct device *parent, bool strict)
 {
        const struct of_dev_auxdata *auxdata;
-       struct device_node *child;
        struct platform_device *dev;
        const char *bus_id = NULL;
        void *platform_data = NULL;
@@ -382,13 +381,11 @@ static int of_platform_bus_create(struct device_node *bus,
        if (!dev || !of_match_node(matches, bus))
                return 0;
 
-       for_each_child_of_node(bus, child) {
+       for_each_child_of_node_scoped(bus, child) {
                pr_debug("   create child: %pOF\n", child);
                rc = of_platform_bus_create(child, matches, lookup, &dev->dev, strict);
-               if (rc) {
-                       of_node_put(child);
+               if (rc)
                        break;
-               }
        }
        of_node_set_flag(bus, OF_POPULATED_BUS);
        return rc;
@@ -459,7 +456,6 @@ int of_platform_populate(struct device_node *root,
                        const struct of_dev_auxdata *lookup,
                        struct device *parent)
 {
-       struct device_node *child;
        int rc = 0;
 
        root = root ? of_node_get(root) : of_find_node_by_path("/");
@@ -470,12 +466,10 @@ int of_platform_populate(struct device_node *root,
        pr_debug(" starting at: %pOF\n", root);
 
        device_links_supplier_sync_state_pause();
-       for_each_child_of_node(root, child) {
+       for_each_child_of_node_scoped(root, child) {
                rc = of_platform_bus_create(child, matches, lookup, parent, true);
-               if (rc) {
-                       of_node_put(child);
+               if (rc)
                        break;
-               }
        }
        device_links_supplier_sync_state_resume();