msm: cpufreq: Release cpumask_var_t on all cases
Release cpufreq 'mask' variable when it fails to qualify for changing
cpu frequency.
CRs-fixed: 348827
Change-Id: I90b13aef01f39ee37ae2693fad494c50cb083e27
Signed-off-by: Praveen Chidambaram <pchidamb@codeaurora.org>
diff --git a/arch/arm/mach-msm/cpufreq.c b/arch/arm/mach-msm/cpufreq.c
index 6512872..63534a4 100644
--- a/arch/arm/mach-msm/cpufreq.c
+++ b/arch/arm/mach-msm/cpufreq.c
@@ -88,13 +88,13 @@
struct cpufreq_work_struct *cpu_work = NULL;
cpumask_var_t mask;
- if (!alloc_cpumask_var(&mask, GFP_KERNEL))
- return -ENOMEM;
-
if (!cpu_active(policy->cpu)) {
pr_info("cpufreq: cpu %d is not active.\n", policy->cpu);
return -ENODEV;
}
+
+ if (!alloc_cpumask_var(&mask, GFP_KERNEL))
+ return -ENOMEM;
#endif
mutex_lock(&per_cpu(cpufreq_suspend, policy->cpu).suspend_mutex);
@@ -138,13 +138,15 @@
wait_for_completion(&cpu_work->complete);
}
- free_cpumask_var(mask);
ret = cpu_work->status;
#else
ret = set_cpu_freq(policy, table[index].frequency);
#endif
done:
+#ifdef CONFIG_SMP
+ free_cpumask_var(mask);
+#endif
mutex_unlock(&per_cpu(cpufreq_suspend, policy->cpu).suspend_mutex);
return ret;
}