On 08-12-15, 01:39, Rafael J. Wysocki wrote: > @@ -269,9 +259,6 @@ static void dbs_timer_handler(unsigned l > { > struct cpu_dbs_info *cdbs = (struct cpu_dbs_info *)data; > struct cpu_common_dbs_info *shared = cdbs->shared; > - unsigned long flags; > - > - spin_lock_irqsave(&shared->timer_lock, flags); > > /* > * Timer handler isn't allowed to queue work at the moment, because: > @@ -279,12 +266,10 @@ static void dbs_timer_handler(unsigned l > * - We are stopping the governor > * - Or we are updating the sampling rate of ondemand governor > */ > - if (!shared->skip_work) { > - shared->skip_work++; > + if (atomic_inc_return(&shared->skip_work) > 1) > + atomic_dec(&shared->skip_work); > + else > queue_work(system_wq, &shared->work); > - }
As explained in the other email, this is wrong.. -- viresh -- 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/