Hi Dietmar, On 18 October 2017 at 12:37, Dietmar Eggemann <dietmar.eggem...@arm.com> wrote: > Hi Vincent, > > On 17/10/17 13:28, Vincent Guittot wrote: >> Hi Dietmar, >> >> On 12 October 2017 at 16:00, Dietmar Eggemann <dietmar.eggem...@arm.com> >> wrote: >>> Remove the 'cpu_efficiency/clock-frequency dt property' based solution >>> to set cpu capacity which was only working for Cortex-A15/A7 arm >>> big.LITTLE systems. >>> >>> I.e. the 'capacity-dmips-mhz' based solution is now the only one. It is >>> shared between arm and arm64 and works for every big.LITTLE system no >>> matter which core types it consists of. >>> >>> Cc: Russell King <li...@arm.linux.org.uk> >>> Cc: Vincent Guittot <vincent.guit...@linaro.org> >>> Cc: Juri Lelli <juri.le...@gmail.com> >>> Signed-off-by: Dietmar Eggemann <dietmar.eggem...@arm.com> > > [...] > >>> @@ -111,76 +50,15 @@ static void __init parse_dt_topology(void) >>> continue; >>> } >>> >>> - if (topology_parse_cpu_capacity(cn, cpu)) { >>> + if (topology_parse_cpu_capacity(cn, cpu)) >>> of_node_put(cn); >> >> We should call the of_node_put unconditionally to balance the >> of_get_cpu_node, isn't it ? >> Note that this problem is also present without your change > > Thanks for the review. Brendan mentioned this the other day already. > > I could add an additional patch to the v3 with this code change. What do > you think?
The changes looks good to me > > diff --git a/arch/arm/kernel/topology.c b/arch/arm/kernel/topology.c > index 15cc131ae387..81ec42333489 100644 > --- a/arch/arm/kernel/topology.c > +++ b/arch/arm/kernel/topology.c > @@ -41,6 +41,7 @@ static void __init parse_dt_topology(void) > pr_err("No CPU information found in DT\n"); > return; > } > + of_node_put(cn); > > for_each_possible_cpu(cpu) { > /* too early to use cpu->of_node */ > @@ -50,8 +51,8 @@ static void __init parse_dt_topology(void) > continue; > } > > - if (topology_parse_cpu_capacity(cn, cpu)) > - of_node_put(cn); > + topology_parse_cpu_capacity(cn, cpu); > + of_node_put(cn); > } > > topology_normalize_cpu_scale(); > > > > > > > > > > > > > > > > >