powerpc/pseries: add of_node_put() in dlpar_detach_node()
authorFrank Rowand <frank.rowand@sony.com>
Fri, 5 Oct 2018 03:27:16 +0000 (20:27 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Feb 2019 09:08:56 +0000 (10:08 +0100)
[ Upstream commit 5b3f5c408d8cc59b87e47f1ab9803dbd006e4a91 ]

The previous commit, "of: overlay: add missing of_node_get() in
__of_attach_node_sysfs" 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()

For more detailed description of the node refcount, see
commit 68baf692c435 ("powerpc/pseries: Fix of_node_put() underflow
during DLPAR remove").

Tested-by: Alan Tull <atull@kernel.org>
Acked-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Frank Rowand <frank.rowand@sony.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/powerpc/platforms/pseries/dlpar.c

index 80d175d..85bd294 100644 (file)
@@ -299,6 +299,8 @@ int dlpar_detach_node(struct device_node *dn)
        if (rc)
                return rc;
 
+       of_node_put(dn);
+
        return 0;
 }