|
@@ -286,8 +286,15 @@ int dlpar_attach_node(struct device_node *dn)
|
|
|
|
|
|
|
|
int dlpar_detach_node(struct device_node *dn)
|
|
int dlpar_detach_node(struct device_node *dn)
|
|
|
{
|
|
{
|
|
|
|
|
+ struct device_node *child;
|
|
|
int rc;
|
|
int rc;
|
|
|
|
|
|
|
|
|
|
+ child = of_get_next_child(dn, NULL);
|
|
|
|
|
+ while (child) {
|
|
|
|
|
+ dlpar_detach_node(child);
|
|
|
|
|
+ child = of_get_next_child(dn, child);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
rc = of_detach_node(dn);
|
|
rc = of_detach_node(dn);
|
|
|
if (rc)
|
|
if (rc)
|
|
|
return rc;
|
|
return rc;
|