]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/cpufreq/cpufreq_ondemand.c
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[karo-tx-linux.git] / drivers / cpufreq / cpufreq_ondemand.c
index 39253d6d51efb2fe4c7eb68511f51cef95156293..2ab3c12b88afbd733fe5fd521a8dcc98540f8f3b 100644 (file)
@@ -626,20 +626,25 @@ static int cpufreq_governor_dbs(struct cpufreq_policy *policy,
        return 0;
 }
 
+#ifndef CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND
+static
+#endif
 struct cpufreq_governor cpufreq_gov_ondemand = {
        .name                   = "ondemand",
        .governor               = cpufreq_governor_dbs,
        .max_transition_latency = TRANSITION_LATENCY_LIMIT,
        .owner                  = THIS_MODULE,
 };
-EXPORT_SYMBOL(cpufreq_gov_ondemand);
 
 static int __init cpufreq_gov_dbs_init(void)
 {
        int err;
        cputime64_t wall;
-       u64 idle_time = get_cpu_idle_time_us(smp_processor_id(), &wall);
+       u64 idle_time;
+       int cpu = get_cpu();
 
+       idle_time = get_cpu_idle_time_us(cpu, &wall);
+       put_cpu();
        if (idle_time != -1ULL) {
                /* Idle micro accounting is supported. Use finer thresholds */
                dbs_tuners_ins.up_threshold = MICRO_FREQUENCY_UP_THRESHOLD;