cpufreq: Avoid using global variable total_cpus
authorRuchi Kandoi <kandoiruchi@google.com>
Tue, 21 Oct 2014 20:55:04 +0000 (13:55 -0700)
committerRuchi Kandoi <kandoiruchi@google.com>
Tue, 21 Oct 2014 22:17:36 +0000 (22:17 +0000)
The change is to compile on kernels where cpufreq stats are compiled as
a module (CONFIG_CPU_FREQ_STAT=m), because total_cpus is not exported for
module use.

Reported-By: Emilio López <elopez93@gmail.com>
Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>
Change-Id: I4f3c74f0fac5e8d9449655b26bf3b407b0fe4290

drivers/cpufreq/cpufreq_stats.c

index 7a2bcac3ad7f48e97f47688b6aba0f51aa5f67bc..d811f5d4b32b32c1aede467a88d222718e3451bb 100644 (file)
@@ -282,19 +282,19 @@ put_ref:
 
 static void cpufreq_allstats_free(void)
 {
-       int i;
+       int cpu;
        struct all_cpufreq_stats *all_stat;
 
        sysfs_remove_file(cpufreq_global_kobject,
                                                &_attr_all_time_in_state.attr);
 
-       for (i = 0; i < total_cpus; i++) {
-               all_stat = per_cpu(all_cpufreq_stats, i);
+       for_each_possible_cpu(cpu) {
+               all_stat = per_cpu(all_cpufreq_stats, cpu);
                if (!all_stat)
                        continue;
                kfree(all_stat->time_in_state);
                kfree(all_stat);
-               per_cpu(all_cpufreq_stats, i) = NULL;
+               per_cpu(all_cpufreq_stats, cpu) = NULL;
        }
        if (all_freq_table) {
                kfree(all_freq_table->freq_table);