diff options
Diffstat (limited to 'drivers/cpufreq')
-rw-r--r-- | drivers/cpufreq/cpufreq.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index a4ad7339588d..f0a5e2b0eb8a 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c | |||
@@ -1177,14 +1177,11 @@ static int __cpufreq_remove_dev(struct device *dev, | |||
1177 | __func__, cpu_dev->id, cpu); | 1177 | __func__, cpu_dev->id, cpu); |
1178 | } | 1178 | } |
1179 | 1179 | ||
1180 | if ((cpus == 1) && (cpufreq_driver->target)) | ||
1181 | __cpufreq_governor(data, CPUFREQ_GOV_POLICY_EXIT); | ||
1182 | |||
1183 | pr_debug("%s: removing link, cpu: %d\n", __func__, cpu); | ||
1184 | cpufreq_cpu_put(data); | ||
1185 | |||
1186 | /* If cpu is last user of policy, free policy */ | 1180 | /* If cpu is last user of policy, free policy */ |
1187 | if (cpus == 1) { | 1181 | if (cpus == 1) { |
1182 | if (cpufreq_driver->target) | ||
1183 | __cpufreq_governor(data, CPUFREQ_GOV_POLICY_EXIT); | ||
1184 | |||
1188 | lock_policy_rwsem_read(cpu); | 1185 | lock_policy_rwsem_read(cpu); |
1189 | kobj = &data->kobj; | 1186 | kobj = &data->kobj; |
1190 | cmp = &data->kobj_unregister; | 1187 | cmp = &data->kobj_unregister; |
@@ -1205,9 +1202,13 @@ static int __cpufreq_remove_dev(struct device *dev, | |||
1205 | free_cpumask_var(data->related_cpus); | 1202 | free_cpumask_var(data->related_cpus); |
1206 | free_cpumask_var(data->cpus); | 1203 | free_cpumask_var(data->cpus); |
1207 | kfree(data); | 1204 | kfree(data); |
1208 | } else if (cpufreq_driver->target) { | 1205 | } else { |
1209 | __cpufreq_governor(data, CPUFREQ_GOV_START); | 1206 | pr_debug("%s: removing link, cpu: %d\n", __func__, cpu); |
1210 | __cpufreq_governor(data, CPUFREQ_GOV_LIMITS); | 1207 | cpufreq_cpu_put(data); |
1208 | if (cpufreq_driver->target) { | ||
1209 | __cpufreq_governor(data, CPUFREQ_GOV_START); | ||
1210 | __cpufreq_governor(data, CPUFREQ_GOV_LIMITS); | ||
1211 | } | ||
1211 | } | 1212 | } |
1212 | 1213 | ||
1213 | per_cpu(cpufreq_policy_cpu, cpu) = -1; | 1214 | per_cpu(cpufreq_policy_cpu, cpu) = -1; |