MIPS: generic: fix missing of_node_put()

This change “MIPS: generic: fix missing of_node_put()” in Linux kernel is authored by Nicholas Mc Guire <hofrat [at] osadl.org> on Wed Jul 11 20:32:45 2018 +0200.

MIPS: generic: fix missing of_node_put()

of_find_compatible_node() returns a device_node pointer with refcount
incremented and must be decremented explicitly.
 As this code is using the result only to check presence of the interrupt
controller (!NULL) but not actually using the result otherwise the
refcount can be decremented here immediately again.

Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
Signed-off-by: Paul Burton <paul.burton@mips.com>
Patchwork: https://patchwork.linux-mips.org/patch/19820/
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: James Hogan <jhogan@kernel.org>
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org

This Linux change may have been applied to various maintained Linux releases and you can find Linux releases including commit 28ec223.

There is one line of Linux source code added/deleted in this change. Code changes to Linux kernel are as follows.

 arch/mips/generic/init.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/mips/generic/init.c b/arch/mips/generic/init.c
index 07ec084..a106f81 100644
--- a/arch/mips/generic/init.c
+++ b/arch/mips/generic/init.c
@@ -203,6 +203,7 @@ void __init arch_init_irq(void)
 					    "mti,cpu-interrupt-controller");
 	if (!cpu_has_veic && !intc_node)
 		mips_cpu_irq_init();
+	of_node_put(intc_node);
 
 	irqchip_init();
 }

The commit for this change in Linux stable tree is 28ec223 (patch).

Leave a Reply

Your email address will not be published. Required fields are marked *