diff options
Diffstat (limited to 'arch/i386')
-rw-r--r-- | arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c b/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c index 57c880bf0bd6..e902d970226f 100644 --- a/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c +++ b/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c | |||
@@ -197,6 +197,7 @@ acpi_cpufreq_target ( | |||
197 | unsigned int relation) | 197 | unsigned int relation) |
198 | { | 198 | { |
199 | struct cpufreq_acpi_io *data = acpi_io_data[policy->cpu]; | 199 | struct cpufreq_acpi_io *data = acpi_io_data[policy->cpu]; |
200 | struct cpufreq_acpi_io *cpudata; | ||
200 | struct acpi_processor_performance *perf; | 201 | struct acpi_processor_performance *perf; |
201 | struct cpufreq_freqs freqs; | 202 | struct cpufreq_freqs freqs; |
202 | cpumask_t online_policy_cpus; | 203 | cpumask_t online_policy_cpus; |
@@ -260,7 +261,8 @@ acpi_cpufreq_target ( | |||
260 | break; | 261 | break; |
261 | } | 262 | } |
262 | 263 | ||
263 | result = acpi_processor_set_performance (data, j, next_state); | 264 | cpudata = acpi_io_data[j]; |
265 | result = acpi_processor_set_performance(cpudata, j, next_state); | ||
264 | if (result) { | 266 | if (result) { |
265 | result = -EAGAIN; | 267 | result = -EAGAIN; |
266 | break; | 268 | break; |
@@ -287,8 +289,11 @@ acpi_cpufreq_target ( | |||
287 | 289 | ||
288 | if (!cpus_empty(covered_cpus)) { | 290 | if (!cpus_empty(covered_cpus)) { |
289 | for_each_cpu_mask(j, covered_cpus) { | 291 | for_each_cpu_mask(j, covered_cpus) { |
290 | policy->cpu = j; | 292 | cpus_clear(set_mask); |
291 | acpi_processor_set_performance (data, | 293 | cpu_set(j, set_mask); |
294 | set_cpus_allowed(current, set_mask); | ||
295 | cpudata = acpi_io_data[j]; | ||
296 | acpi_processor_set_performance(cpudata, | ||
292 | j, | 297 | j, |
293 | cur_state); | 298 | cur_state); |
294 | } | 299 | } |