Re: [PATCH v6 04/18] powerpc/pseries: add of_node_put() in dlpar_detach_node()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



frowand.list@xxxxxxxxx writes:

> From: Frank Rowand <frank.rowand@xxxxxxxx>
>
> "of: overlay: add missing of_node_get() in __of_attach_node_sysfs"

It would be clearer if you said 'The previous commit "of: overlay ..."

> added a missing of_node_get() to __of_attach_node_sysfs().  This
> results in a refcount imbalance for nodes attached with
> dlpar_attach_node().  The calling sequence from dlpar_attach_node()
> to __of_attach_node_sysfs() is:
>
>    dlpar_attach_node()
>       of_attach_node()
>          __of_attach_node_sysfs()
>
> Tested-by: Alan Tull <atull@xxxxxxxxxx>
> Signed-off-by: Frank Rowand <frank.rowand@xxxxxxxx>
> ---
>
> ***** UNTESTED.  I need people with the affected PowerPC systems
> *****            (systems that dynamically allocate and deallocate
> *****            devicetree nodes) to test this patch.

This looks OK to me in light of the previous patch.

Acked-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>

It also means dlpar_detach_node() is again behaving as described in the
comment to of_detach_node().

It would be good to make mention of:

  Fixes: 68baf692c435 ("powerpc/pseries: Fix of_node_put() underflow during DLPAR remove")

Which removed an of_node_put() in the exact same place for different
reasons.

cheers

> diff --git a/arch/powerpc/platforms/pseries/dlpar.c b/arch/powerpc/platforms/pseries/dlpar.c
> index 7625546caefd..17958043e7f7 100644
> --- a/arch/powerpc/platforms/pseries/dlpar.c
> +++ b/arch/powerpc/platforms/pseries/dlpar.c
> @@ -270,6 +270,8 @@ int dlpar_detach_node(struct device_node *dn)
>  	if (rc)
>  		return rc;
>  
> +	of_node_put(dn);
> +
>  	return 0;
>  }
>  
> -- 
> Frank Rowand <frank.rowand@xxxxxxxx>



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux