On 01/04/2013 10:49 AM, Viresh Kumar wrote: > On 3 January 2013 19:55, Srivatsa S. Bhat > <srivatsa.b...@linux.vnet.ibm.com> wrote: >> I took a quick look at the problem you described above, and the cpufreq >> code.. >> If we cannot avoid calling cpufreq_add_dev() from cpufreq_remove_dev(), then >> I can't >> think of anything better than what your patch does. > > Good :) > >> BTW, off-topic, while going through that path, I think I found a memory leak >> in __cpufreq_remove_dev(): >> >> if (unlikely(cpumask_weight(data->cpus) > 1)) { >> for_each_cpu(j, data->cpus) { >> if (j == cpu) >> continue; >> per_cpu(cpufreq_cpu_data, j) = NULL; >> } >> } >> >> We are assigning NULL without freeing that memory. > > Not really. All cpus in affected_cpus (data->cpus), share the same > policy structure. > We have already taken backup of cpufreq_cpu_data for the first cpu in "data" > and > are freeing it here: > > kfree(data); >
Ah, ok, got it. Thanks! Regards, Srivatsa S. Bhat _______________________________________________ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev