[PATCH] powerpc/powermac/udbg_scc: Fix refcount leak bug in udbg_scc_init()
Benjamin Herrenschmidt
benh at kernel.crashing.org
Tue Aug 2 14:50:32 AEST 2022
On Sat, 2022-07-16 at 15:43 +0800, Liang He wrote:
> 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.
None of these matter since those nodes are never *ever* released and
those machines don't use dynamic node allocation but ...
> Fixes: 51d3082fe6e5 ("[PATCH] powerpc: Unify udbg (#2)")
> Signed-off-by: Liang He <windhl at 126.com>
> ---
> arch/powerpc/platforms/powermac/udbg_scc.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/arch/powerpc/platforms/powermac/udbg_scc.c
> b/arch/powerpc/platforms/powermac/udbg_scc.c
> index 734df5a32f99..1b7c39e841ee 100644
> --- a/arch/powerpc/platforms/powermac/udbg_scc.c
> +++ b/arch/powerpc/platforms/powermac/udbg_scc.c
> @@ -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;
More information about the Linuxppc-dev
mailing list