On 20 May 2013 15:10, Viresh Kumar <viresh.ku...@linaro.org> wrote: > On 20 May 2013 15:01, Srivatsa S. Bhat <srivatsa.b...@linux.vnet.ibm.com> > wrote: >> And Viresh, in the regular hotplug paths, the call to gov_cancel_work() is >> supposed to kill any pending workqueue functions pertaining to offline CPUs >> right? > > Yes.. It will cancel work for all cpus first and will start again for > online cpus again. > >> Could there be a synchronization bug somewhere due to which this >> might not be happening properly? > > Not sure.. I have seen mutex's are used well in cpufreq_governor.. don't know > if I missed something.
Borislav, Can you try below change to see if the issue is still present? (Untested) diff --git a/drivers/cpufreq/cpufreq_governor.c b/drivers/cpufreq/cpufreq_governor.c index 7532570..b9ae5f6 100644 --- a/drivers/cpufreq/cpufreq_governor.c +++ b/drivers/cpufreq/cpufreq_governor.c @@ -359,7 +359,9 @@ int cpufreq_governor_dbs(struct cpufreq_policy *policy, if (dbs_data->cdata->governor == GOV_CONSERVATIVE) cs_dbs_info->enable = 0; + mutex_lock(&cpu_cdbs->timer_mutex); gov_cancel_work(dbs_data, policy); + mutex_unlock(&cpu_cdbs->timer_mutex); mutex_lock(&dbs_data->mutex); mutex_destroy(&cpu_cdbs->timer_mutex); -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/