Re: [PATCH 8/8] powerpc/pseries: child nodes are not detached by dlpar_detach_node

2013-08-19 Thread Nathan Fontenot
On 08/15/2013 12:23 AM, Tyrel Datwyler wrote:
 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: Tyrel Datwyler tyr...@linux.vnet.ibm.com

Acked-by: Nathan Fontenot nf...@linux.vnet.ibm.com

 ---
  arch/powerpc/platforms/pseries/dlpar.c | 7 +++
  1 file changed, 7 insertions(+)
 
 diff --git a/arch/powerpc/platforms/pseries/dlpar.c 
 b/arch/powerpc/platforms/pseries/dlpar.c
 index 4ea667d..7cfdaae 100644
 --- a/arch/powerpc/platforms/pseries/dlpar.c
 +++ b/arch/powerpc/platforms/pseries/dlpar.c
 @@ -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;
 

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


[PATCH 8/8] powerpc/pseries: child nodes are not detached by dlpar_detach_node

2013-08-14 Thread Tyrel Datwyler
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: Tyrel Datwyler tyr...@linux.vnet.ibm.com
---
 arch/powerpc/platforms/pseries/dlpar.c | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/arch/powerpc/platforms/pseries/dlpar.c 
b/arch/powerpc/platforms/pseries/dlpar.c
index 4ea667d..7cfdaae 100644
--- a/arch/powerpc/platforms/pseries/dlpar.c
+++ b/arch/powerpc/platforms/pseries/dlpar.c
@@ -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;
-- 
1.7.12.4

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev