]> git.itanic.dy.fi Git - linux-stable/commitdiff
powerpc/powermac/udbg_scc: Add missing of_node_put()s in udbg_scc_init()
authorLiang He <windhl@126.com>
Sat, 16 Jul 2022 07:43:44 +0000 (15:43 +0800)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 5 Sep 2022 07:30:30 +0000 (17:30 +1000)
During the iteration of for_each_child_of_node(), we need to call
of_node_put() for the old references stored in to 'ch_def' and 'ch_a'
as their refcounters have been increased in last iteration.

Signed-off-by: Liang He <windhl@126.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20220716074344.540049-1-windhl@126.com
arch/powerpc/platforms/powermac/udbg_scc.c

index 734df5a32f994fc1ecbed4156e49a027eb9f3949..1b7c39e841ee7d7c73796bf6ec1b930f4d1c8f82 100644 (file)
@@ -81,10 +81,14 @@ void __init udbg_scc_init(int force_scc)
        if (path != NULL)
                stdout = of_find_node_by_path(path);
        for_each_child_of_node(escc, ch) {
-               if (ch == stdout)
+               if (ch == stdout) {
+                       of_node_put(ch_def);
                        ch_def = of_node_get(ch);
-               if (of_node_name_eq(ch, "ch-a"))
+               }
+               if (of_node_name_eq(ch, "ch-a")) {
+                       of_node_put(ch_a);
                        ch_a = of_node_get(ch);
+               }
        }
        if (ch_def == NULL && !force_scc)
                goto bail;