tree 640da1d2beb27b2f3a2d00f2cc118d53b22293a6
parent 3842f5166bf1ef286fe7a39f262b5c9581308366
author Wen Yang <wen.yang99@zte.com.cn> 1551242441 +0800
committer Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> 1554111778 +0100

PCI: iproc: Fix a leaked reference by adding missing of_node_put()

The call to of_parse_phandle() returns a node pointer with refcount
incremented thus it must be explicitly decremented after the last
usage.

iproc_msi_init() also calls of_node_get() to increase refcount:

proc_msi_init()
 -> iproc_msi_alloc_domains()
  -> pci_msi_create_irq_domain()
   -> msi_create_irq_domain()
    -> irq_domain_create_linear()
     -> __irq_domain_add()

so irq_domain will not be affected when it is released.

Detected by coccinelle with the following warnings:
  ./drivers/pci/controller/pcie-iproc.c:1323:3-9: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 1299, but without a corresponding object release within this function.
  ./drivers/pci/controller/pcie-iproc.c:1330:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 1299, but without a corresponding object release within this function.

Signed-off-by: Wen Yang <wen.yang99@zte.com.cn>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Ray Jui <rjui@broadcom.com>
Cc: Scott Branden <sbranden@broadcom.com>
Cc: bcm-kernel-feedback-list@broadcom.com
Cc: linux-pci@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
