In fsl_setup_msi_irqs(), we should use of_node_put() for the
refernece 'np' returned by of_parse_phandle() which increases
the refcount.

Fixes: 895d603f945ba ("powerpc/fsl_msi: add support for the fsl, msi property 
in PCI nodes")
Co-authored-by: Miaoqian Lin <linmq...@gmail.com>
Signed-off-by: Liang He <win...@126.com>
---

 There is an incomplete fix: 
 https://lore.kernel.org/all/20220526010935.32138-1-zhengyongj...@huawei.com/

 We should call of_node_put() both in fail path and normal path.

 arch/powerpc/sysdev/fsl_msi.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/powerpc/sysdev/fsl_msi.c b/arch/powerpc/sysdev/fsl_msi.c
index ef9a5999fa93..73c2d70706c0 100644
--- a/arch/powerpc/sysdev/fsl_msi.c
+++ b/arch/powerpc/sysdev/fsl_msi.c
@@ -209,8 +209,10 @@ static int fsl_setup_msi_irqs(struct pci_dev *pdev, int 
nvec, int type)
                        dev_err(&pdev->dev,
                                "node %pOF has an invalid fsl,msi phandle %u\n",
                                hose->dn, np->phandle);
+                       of_node_put(np);
                        return -EINVAL;
                }
+               of_node_put(np);
        }
 
        msi_for_each_desc(entry, &pdev->dev, MSI_DESC_NOTASSOCIATED) {
-- 
2.25.1

Reply via email to