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

From: Frank Rowand
Date: Wed Nov 07 2018 - 09:59:01 EST


On 11/7/18 4:23 AM, Michael Ellerman wrote:
> 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 ..."

Will fix.


>> 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.

OK.

-Frank

>
> 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>
>