OSDN Git Service

PCI: mediatek: Add missing of_node_put() to fix reference leak
authorKrzysztof Wilczyński <kw@linux.com>
Wed, 20 Jan 2021 18:48:10 +0000 (18:48 +0000)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Mon, 25 Jan 2021 17:33:28 +0000 (17:33 +0000)
commit42814c438aac79746d310f413a27d5b0b959c5de
treed84e36227d98664e3fa2b0492b86826e3a52b77e
parent7c53f6b671f4aba70ff15e1b05148b10d58c2837
PCI: mediatek: Add missing of_node_put() to fix reference leak

The for_each_available_child_of_node helper internally makes use of the
of_get_next_available_child() which performs an of_node_get() on each
iteration when searching for next available child node.

Should an available child node be found, then it would return a device
node pointer with reference count incremented, thus early return from
the middle of the loop requires an explicit of_node_put() to prevent
reference count leak.

To stop the reference leak, explicitly call of_node_put() before
returning after an error occurred.

Link: https://lore.kernel.org/r/20210120184810.3068794-1-kw@linux.com
Signed-off-by: Krzysztof Wilczyński <kw@linux.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
drivers/pci/controller/pcie-mediatek.c