On Wed, Jun 01, 2022 at 08:12:58AM +0400, Miaoqian Lin wrote: > of_get_child_by_name() returns a node pointer with refcount > incremented, we should use of_node_put() on it when not need anymore. > Add missing of_node_put() to avoid refcount leak. > > Fixes: 814cceebba9b ("PCI: mediatek-gen3: Add INTx support") > Signed-off-by: Miaoqian Lin <linmq006@xxxxxxxxx> Can we get an ack from Ryder or Jianjun, as well, since they're listed as maintainers? > --- > changes in v2: > - move of_node_put(intc_node) right after irq_domain_add_linear to cover > normal path and error paths. > --- > changes in v3: > - call of_node_put() in error paths with goto, and call of_node_put() before > return 0 in normal path. Since this function has a goto part to handle > resources, so put them together, as suggested by Miles Chen <miles.chen@xxxxxxxxxxxx> > > v1 link: https://lore.kernel.org/all/20220526110246.53502-1-linmq006@xxxxxxxxx/ > v2 link: https://lore.kernel.org/all/20220530064807.34534-1-linmq006@xxxxxxxxx/ > --- > drivers/pci/controller/pcie-mediatek-gen3.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/pci/controller/pcie-mediatek-gen3.c b/drivers/pci/controller/pcie-mediatek-gen3.c > index 3e8d70bfabc6..bceed28446ed 100644 > --- a/drivers/pci/controller/pcie-mediatek-gen3.c > +++ b/drivers/pci/controller/pcie-mediatek-gen3.c > @@ -600,7 +600,8 @@ static int mtk_pcie_init_irq_domains(struct mtk_gen3_pcie *pcie) > &intx_domain_ops, pcie); > if (!pcie->intx_domain) { > dev_err(dev, "failed to create INTx IRQ domain\n"); > - return -ENODEV; > + ret = -ENODEV; > + goto out_put_node; > } > > /* Setup MSI */ > @@ -623,13 +624,15 @@ static int mtk_pcie_init_irq_domains(struct mtk_gen3_pcie *pcie) > goto err_msi_domain; > } > > + of_node_put(intc_node); > return 0; > > err_msi_domain: > irq_domain_remove(pcie->msi_bottom_domain); > err_msi_bottom_domain: > irq_domain_remove(pcie->intx_domain); > - > +out_put_node: > + of_node_put(intc_node); > return ret; > } > > -- > 2.25.1 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@xxxxxxxxxxxxxxxxxxx > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel