Message ID | 20220716074344.540049-1-windhl@126.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | powerpc/powermac/udbg_scc: Fix refcount leak bug in udbg_scc_init() | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/github-powerpc_ppctests | success | Successfully ran 10 jobs. |
snowpatch_ozlabs/github-powerpc_selftests | success | Successfully ran 10 jobs. |
snowpatch_ozlabs/github-powerpc_sparse | success | Successfully ran 4 jobs. |
snowpatch_ozlabs/github-powerpc_kernel_qemu | success | Successfully ran 23 jobs. |
snowpatch_ozlabs/github-powerpc_clang | success | Successfully ran 7 jobs. |
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@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;
On Sat, 16 Jul 2022 15:43:44 +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. > > Applied to powerpc/next. [1/1] powerpc/powermac/udbg_scc: Fix refcount leak bug in udbg_scc_init() https://git.kernel.org/powerpc/c/2378bf144b841df548161af49bf1ff393dc60d44 cheers
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;
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. Fixes: 51d3082fe6e5 ("[PATCH] powerpc: Unify udbg (#2)") Signed-off-by: Liang He <windhl@126.com> --- arch/powerpc/platforms/powermac/udbg_scc.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)