PCI: faraday: Add missing of_node_put()

The call to of_get_next_child() returns a node pointer with refcount
incremented thus it must be explicitly decremented here in the error
path and after the last usage.

Fixes: d3c68e0a7e ("PCI: faraday: Add Faraday Technology FTPCI100 PCI Host Bridge driver")
Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
[lorenzo.pieralisi@arm.com: updated commit log]
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
Nicholas Mc Guire 2018-06-29 13:50:27 -05:00 committed by Bjorn Helgaas
parent 342639d996
commit 3dc6ddfedc
1 changed files with 2 additions and 0 deletions

View File

@ -355,11 +355,13 @@ static int faraday_pci_setup_cascaded_irq(struct faraday_pci *p)
irq = of_irq_get(intc, 0); irq = of_irq_get(intc, 0);
if (irq <= 0) { if (irq <= 0) {
dev_err(p->dev, "failed to get parent IRQ\n"); dev_err(p->dev, "failed to get parent IRQ\n");
of_node_put(intc);
return irq ?: -EINVAL; return irq ?: -EINVAL;
} }
p->irqdomain = irq_domain_add_linear(intc, PCI_NUM_INTX, p->irqdomain = irq_domain_add_linear(intc, PCI_NUM_INTX,
&faraday_pci_irqdomain_ops, p); &faraday_pci_irqdomain_ops, p);
of_node_put(intc);
if (!p->irqdomain) { if (!p->irqdomain) {
dev_err(p->dev, "failed to create Gemini PCI IRQ domain\n"); dev_err(p->dev, "failed to create Gemini PCI IRQ domain\n");
return -EINVAL; return -EINVAL;