|
|
@@ -405,8 +405,10 @@ int of_platform_bus_probe(struct device_node *root,
|
|
|
if (!of_match_node(matches, child))
|
|
|
continue;
|
|
|
rc = of_platform_bus_create(child, matches, NULL, parent, false);
|
|
|
- if (rc)
|
|
|
+ if (rc) {
|
|
|
+ of_node_put(child);
|
|
|
break;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
of_node_put(root);
|
|
|
@@ -447,8 +449,10 @@ int of_platform_populate(struct device_node *root,
|
|
|
|
|
|
for_each_child_of_node(root, child) {
|
|
|
rc = of_platform_bus_create(child, matches, lookup, parent, true);
|
|
|
- if (rc)
|
|
|
+ if (rc) {
|
|
|
+ of_node_put(child);
|
|
|
break;
|
|
|
+ }
|
|
|
}
|
|
|
of_node_set_flag(root, OF_POPULATED_BUS);
|
|
|
|