Merge tag 'devicetree-for-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/robh...
[sfrench/cifs-2.6.git] / drivers / of / unittest.c
index d7593bde2d02f39c2532ae4d0be41cccaec38526..6b5c36b6a75862010f443321da4aa9d8d0c1c5eb 100644 (file)
@@ -239,27 +239,22 @@ static void __init of_unittest_dynamic(void)
 
 static int __init of_unittest_check_node_linkage(struct device_node *np)
 {
-       struct device_node *child;
        int count = 0, rc;
 
-       for_each_child_of_node(np, child) {
+       for_each_child_of_node_scoped(np, child) {
                if (child->parent != np) {
                        pr_err("Child node %pOFn links to wrong parent %pOFn\n",
                                 child, np);
-                       rc = -EINVAL;
-                       goto put_child;
+                       return -EINVAL;
                }
 
                rc = of_unittest_check_node_linkage(child);
                if (rc < 0)
-                       goto put_child;
+                       return rc;
                count += rc;
        }
 
        return count + 1;
-put_child:
-       of_node_put(child);
-       return rc;
 }
 
 static void __init of_unittest_check_tree_linkage(void)
@@ -1750,20 +1745,16 @@ static int __init unittest_data_add(void)
                return -EINVAL;
        }
 
+       /* attach the sub-tree to live tree */
        if (!of_root) {
-               of_root = unittest_data_node;
-               for_each_of_allnodes(np)
-                       __of_attach_node_sysfs(np);
-               of_aliases = of_find_node_by_path("/aliases");
-               of_chosen = of_find_node_by_path("/chosen");
-               of_overlay_mutex_unlock();
-               return 0;
+               pr_warn("%s: no live tree to attach sub-tree\n", __func__);
+               kfree(unittest_data);
+               return -ENODEV;
        }
 
        EXPECT_BEGIN(KERN_INFO,
                     "Duplicate name in testcase-data, renamed to \"duplicate-name#1\"");
 
-       /* attach the sub-tree to live tree */
        np = unittest_data_node->child;
        while (np) {
                struct device_node *next = np->sibling;
@@ -4093,10 +4084,6 @@ static int __init of_unittest(void)
        add_taint(TAINT_TEST, LOCKDEP_STILL_OK);
 
        /* adding data for unittest */
-
-       if (IS_ENABLED(CONFIG_UML))
-               unittest_unflatten_overlay_base();
-
        res = unittest_data_add();
        if (res)
                return res;