Message ID | 20170727193312.9849-2-dietmar.eggemann@arm.com |
---|---|
State | Superseded |
Headers | show |
Series | [v3,01/10] drivers base/arch_topology: free cpumask cpus_to_visit | expand |
Hi Greg, On 28/07/17 12:51, Viresh Kumar wrote: > On 27-07-17, 20:33, Dietmar Eggemann wrote: > > Free cpumask cpus_to_visit in case registering > > init_cpu_capacity_notifier has failed or the parsing of the cpu > > capacity-dmips-mhz property is done. The cpumask cpus_to_visit is > > only used inside the notifier call init_cpu_capacity_callback. > > > > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > > Cc: Juri Lelli <juri.lelli@arm.com> > > Reported-by: Vincent Guittot <vincent.guittot@linaro.org> > > Signed-off-by: Dietmar Eggemann <dietmar.eggemann@arm.com> > > Acked-by: Vincent Guittot <vincent.guittot@linaro.org> > > Tested-by: Juri Lelli <juri.lelli@arm.com> > > Reviewed-by: Juri Lelli <juri.lelli@arm.com> > > --- > > drivers/base/arch_topology.c | 12 ++++++++++-- > > 1 file changed, 10 insertions(+), 2 deletions(-) > > Acked-by: Viresh Kumar <viresh.kumar@linaro.org> This is actually a fix/optimization which is orthogonal to the rest of the set. Would it make sense to take only this for now and keep reviewing the other patches? Thanks, - Juri
diff --git a/drivers/base/arch_topology.c b/drivers/base/arch_topology.c index d1c33a85059e..562e0c93ae52 100644 --- a/drivers/base/arch_topology.c +++ b/drivers/base/arch_topology.c @@ -206,6 +206,8 @@ static struct notifier_block init_cpu_capacity_notifier = { static int __init register_cpufreq_notifier(void) { + int ret; + /* * on ACPI-based systems we need to use the default cpu capacity * until we have the necessary code to parse the cpu capacity, so @@ -221,8 +223,13 @@ static int __init register_cpufreq_notifier(void) cpumask_copy(cpus_to_visit, cpu_possible_mask); - return cpufreq_register_notifier(&init_cpu_capacity_notifier, - CPUFREQ_POLICY_NOTIFIER); + ret = cpufreq_register_notifier(&init_cpu_capacity_notifier, + CPUFREQ_POLICY_NOTIFIER); + + if (ret) + free_cpumask_var(cpus_to_visit); + + return ret; } core_initcall(register_cpufreq_notifier); @@ -230,6 +237,7 @@ static void parsing_done_workfn(struct work_struct *work) { cpufreq_unregister_notifier(&init_cpu_capacity_notifier, CPUFREQ_POLICY_NOTIFIER); + free_cpumask_var(cpus_to_visit); } #else