mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
cpufreq: only stop ondemand governor if already started
On CPUFREQ_GOV_STOP in cpufreq_governor_dbs, shortcut to return success if the governor is already stopped. Avoid executing dbs_timer_exit, to prevent tripping an assertion within a call to kill_timer on a timer that has not been prepared with init_timer, if the CPUFREQ_GOV_START case has not run beforehand. kill_timer validates timer state: * itself, via BUG_ON(this_cpu(timers).running == timer); * within active_timer, ASSERTing timer->status is within bounds; * within list_del, which ASSERTs timer inactive list membership. Patch is synonymous to an OpenXT patch produced at Citrix prior to June 2014. Signed-off-by: Christopher Clark <christopher.clark6@baesystems.com> Reviewed-by: Jan Beulich <jbeulich@suse.com>
This commit is contained in:
1 parent
de834631b6
commit
e7ec6f5f32
1 file changed
+4
@@ -273,6 +273,10 @@ int cpufreq_governor_dbs(struct cpufreq_policy *policy, unsigned int event)
|
||||
break;
|
||||
|
||||
case CPUFREQ_GOV_STOP:
|
||||
if ( !this_dbs_info->enable )
|
||||
/* Already not enabled */
|
||||
break;
|
||||
|
||||
dbs_timer_exit(this_dbs_info);
|
||||
dbs_enable--;
|
||||
|
||||
|
||||