On Friday, March 22, 2013 04:42:57 PM Amit Kucheria wrote:
On Fri, Mar 22, 2013 at 3:43 PM, Viresh Kumar viresh.kumar@linaro.org wrote:
In cpufreq_stats_free_sysfs() we aren't balancing calls to cpufreq_cpu_get() with cpufreq_cpu_put(). This will never let us have ref count to policy->kobj as zero.
Rafael,
Since this prevents booting on our hardware (we unregister and re-register the cpufreq driver to account for virtual cores), will this be considered as a hotfix for 3.9?
Sure. Can you please remind me what hardware is that, though?
Rafael
Signed-off-by: Viresh Kumar viresh.kumar@linaro.org
Acked-by: Amit Kucheria amit.kucheria@linaro.org
drivers/cpufreq/cpufreq_stats.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/cpufreq/cpufreq_stats.c b/drivers/cpufreq/cpufreq_stats.c index 2fd779e..bfd6273 100644 --- a/drivers/cpufreq/cpufreq_stats.c +++ b/drivers/cpufreq/cpufreq_stats.c @@ -180,15 +180,19 @@ static void cpufreq_stats_free_sysfs(unsigned int cpu) { struct cpufreq_policy *policy = cpufreq_cpu_get(cpu);
if (!cpufreq_frequency_get_table(cpu))
if (!policy) return;
if (policy && !policy_is_shared(policy)) {
if (!cpufreq_frequency_get_table(cpu))
goto put_ref;
if (!policy_is_shared(policy)) { pr_debug("%s: Free sysfs stat\n", __func__); sysfs_remove_group(&policy->kobj, &stats_attr_group); }
if (policy)
cpufreq_cpu_put(policy);
+put_ref:
cpufreq_cpu_put(policy);
}
static int cpufreq_stats_create_table(struct cpufreq_policy *policy,
1.7.12.rc2.18.g61b472e
-- To unsubscribe from this list: send the line "unsubscribe cpufreq" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html