cpufreq: ondemand: use all CPUs in update_sampling_rate
authorFabio Baltieri <fabio.baltieri@linaro.org>
Thu, 27 Dec 2012 14:55:42 +0000 (14:55 +0000)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 1 Feb 2013 23:01:14 +0000 (00:01 +0100)
Modify update_sampling_rate() to check, and eventually immediately
schedule, all CPU's do_dbs_timer delayed work.

This is required in case of software coordinated CPUs, as we now have a
separate delayed work for each CPU.

Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpufreq/cpufreq_ondemand.c

index 13ceb3c69b64760703e64ddfbc7403a3f43a4c36..1017b90b902e3c797e6e5fc8a8e803000af0beab 100644 (file)
@@ -326,7 +326,7 @@ static void update_sampling_rate(unsigned int new_rate)
                        cpufreq_cpu_put(policy);
                        continue;
                }
-               dbs_info = &per_cpu(od_cpu_dbs_info, policy->cpu);
+               dbs_info = &per_cpu(od_cpu_dbs_info, cpu);
                cpufreq_cpu_put(policy);
 
                mutex_lock(&dbs_info->cdbs.timer_mutex);
@@ -345,8 +345,7 @@ static void update_sampling_rate(unsigned int new_rate)
                        cancel_delayed_work_sync(&dbs_info->cdbs.work);
                        mutex_lock(&dbs_info->cdbs.timer_mutex);
 
-                       schedule_delayed_work_on(dbs_info->cdbs.cpu,
-                                       &dbs_info->cdbs.work,
+                       schedule_delayed_work_on(cpu, &dbs_info->cdbs.work,
                                        usecs_to_jiffies(new_rate));
 
                }