cpufreq: Reorganize checks in cpufreq_offline()
[ Upstream commit e1e962c5b9edbc628a335bcdbd010331a12d3e5b ] Notice that cpufreq_offline() only needs to check policy_is_inactive() once and rearrange the code in there to make that happen. No expected functional impact. Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Acked-by: Viresh Kumar <viresh.kumar@linaro.org> Stable-dep-of: b8f85833c057 ("cpufreq: exit() callback is optional") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
7a4d18a27d
commit
3a28fbf533
@@ -1573,24 +1573,18 @@ static int cpufreq_offline(unsigned int cpu)
|
|||||||
}
|
}
|
||||||
|
|
||||||
down_write(&policy->rwsem);
|
down_write(&policy->rwsem);
|
||||||
|
|
||||||
if (has_target())
|
if (has_target())
|
||||||
cpufreq_stop_governor(policy);
|
cpufreq_stop_governor(policy);
|
||||||
|
|
||||||
cpumask_clear_cpu(cpu, policy->cpus);
|
cpumask_clear_cpu(cpu, policy->cpus);
|
||||||
|
|
||||||
if (policy_is_inactive(policy)) {
|
|
||||||
if (has_target())
|
|
||||||
strncpy(policy->last_governor, policy->governor->name,
|
|
||||||
CPUFREQ_NAME_LEN);
|
|
||||||
else
|
|
||||||
policy->last_policy = policy->policy;
|
|
||||||
} else if (cpu == policy->cpu) {
|
|
||||||
/* Nominate new CPU */
|
|
||||||
policy->cpu = cpumask_any(policy->cpus);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Start governor again for active policy */
|
|
||||||
if (!policy_is_inactive(policy)) {
|
if (!policy_is_inactive(policy)) {
|
||||||
|
/* Nominate a new CPU if necessary. */
|
||||||
|
if (cpu == policy->cpu)
|
||||||
|
policy->cpu = cpumask_any(policy->cpus);
|
||||||
|
|
||||||
|
/* Start the governor again for the active policy. */
|
||||||
if (has_target()) {
|
if (has_target()) {
|
||||||
ret = cpufreq_start_governor(policy);
|
ret = cpufreq_start_governor(policy);
|
||||||
if (ret)
|
if (ret)
|
||||||
@@ -1600,6 +1594,12 @@ static int cpufreq_offline(unsigned int cpu)
|
|||||||
goto unlock;
|
goto unlock;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (has_target())
|
||||||
|
strncpy(policy->last_governor, policy->governor->name,
|
||||||
|
CPUFREQ_NAME_LEN);
|
||||||
|
else
|
||||||
|
policy->last_policy = policy->policy;
|
||||||
|
|
||||||
if (cpufreq_thermal_control_enabled(cpufreq_driver)) {
|
if (cpufreq_thermal_control_enabled(cpufreq_driver)) {
|
||||||
cpufreq_cooling_unregister(policy->cdev);
|
cpufreq_cooling_unregister(policy->cdev);
|
||||||
policy->cdev = NULL;
|
policy->cdev = NULL;
|
||||||
|
Reference in New Issue
Block a user