Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5935ff43 authored by Tyrel Datwyler's avatar Tyrel Datwyler Committed by Benjamin Herrenschmidt
Browse files

powerpc/pseries: Child nodes are not detached by dlpar_detach_node



Calls to dlpar_detach_node do not iterate over child nodes detaching them as
well. By iterating and detaching the child nodes we ensure that they have the
OF_DETACHED flag set and that their reference counts are decremented such that
the node will be freed from memory by of_node_release.

Signed-off-by: default avatarTyrel Datwyler <tyreld@linux.vnet.ibm.com>
Acked-by: default avatarNathan Fontenot <nfont@linux.vnet.ibm.com>
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent 14cd820a
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -286,8 +286,15 @@ int dlpar_attach_node(struct device_node *dn)

int dlpar_detach_node(struct device_node *dn)
{
	struct device_node *child;
	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);
	if (rc)
		return rc;