diff options
Diffstat (limited to 'arch/x86/kernel/cpu/cpufreq')
-rw-r--r-- | arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c | 28 | ||||
-rw-r--r-- | arch/x86/kernel/cpu/cpufreq/p4-clockmod.c | 4 | ||||
-rw-r--r-- | arch/x86/kernel/cpu/cpufreq/powernow-k8.c | 32 | ||||
-rw-r--r-- | arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c | 13 | ||||
-rw-r--r-- | arch/x86/kernel/cpu/cpufreq/speedstep-ich.c | 20 |
5 files changed, 50 insertions, 47 deletions
diff --git a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c index a962dcb9c408..e2d870de837c 100644 --- a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c +++ b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c | |||
@@ -192,9 +192,9 @@ static void drv_read(struct drv_cmd *cmd) | |||
192 | cpumask_t saved_mask = current->cpus_allowed; | 192 | cpumask_t saved_mask = current->cpus_allowed; |
193 | cmd->val = 0; | 193 | cmd->val = 0; |
194 | 194 | ||
195 | set_cpus_allowed(current, cmd->mask); | 195 | set_cpus_allowed_ptr(current, &cmd->mask); |
196 | do_drv_read(cmd); | 196 | do_drv_read(cmd); |
197 | set_cpus_allowed(current, saved_mask); | 197 | set_cpus_allowed_ptr(current, &saved_mask); |
198 | } | 198 | } |
199 | 199 | ||
200 | static void drv_write(struct drv_cmd *cmd) | 200 | static void drv_write(struct drv_cmd *cmd) |
@@ -203,30 +203,30 @@ static void drv_write(struct drv_cmd *cmd) | |||
203 | unsigned int i; | 203 | unsigned int i; |
204 | 204 | ||
205 | for_each_cpu_mask(i, cmd->mask) { | 205 | for_each_cpu_mask(i, cmd->mask) { |
206 | set_cpus_allowed(current, cpumask_of_cpu(i)); | 206 | set_cpus_allowed_ptr(current, &cpumask_of_cpu(i)); |
207 | do_drv_write(cmd); | 207 | do_drv_write(cmd); |
208 | } | 208 | } |
209 | 209 | ||
210 | set_cpus_allowed(current, saved_mask); | 210 | set_cpus_allowed_ptr(current, &saved_mask); |
211 | return; | 211 | return; |
212 | } | 212 | } |
213 | 213 | ||
214 | static u32 get_cur_val(cpumask_t mask) | 214 | static u32 get_cur_val(const cpumask_t *mask) |
215 | { | 215 | { |
216 | struct acpi_processor_performance *perf; | 216 | struct acpi_processor_performance *perf; |
217 | struct drv_cmd cmd; | 217 | struct drv_cmd cmd; |
218 | 218 | ||
219 | if (unlikely(cpus_empty(mask))) | 219 | if (unlikely(cpus_empty(*mask))) |
220 | return 0; | 220 | return 0; |
221 | 221 | ||
222 | switch (per_cpu(drv_data, first_cpu(mask))->cpu_feature) { | 222 | switch (per_cpu(drv_data, first_cpu(*mask))->cpu_feature) { |
223 | case SYSTEM_INTEL_MSR_CAPABLE: | 223 | case SYSTEM_INTEL_MSR_CAPABLE: |
224 | cmd.type = SYSTEM_INTEL_MSR_CAPABLE; | 224 | cmd.type = SYSTEM_INTEL_MSR_CAPABLE; |
225 | cmd.addr.msr.reg = MSR_IA32_PERF_STATUS; | 225 | cmd.addr.msr.reg = MSR_IA32_PERF_STATUS; |
226 | break; | 226 | break; |
227 | case SYSTEM_IO_CAPABLE: | 227 | case SYSTEM_IO_CAPABLE: |
228 | cmd.type = SYSTEM_IO_CAPABLE; | 228 | cmd.type = SYSTEM_IO_CAPABLE; |
229 | perf = per_cpu(drv_data, first_cpu(mask))->acpi_data; | 229 | perf = per_cpu(drv_data, first_cpu(*mask))->acpi_data; |
230 | cmd.addr.io.port = perf->control_register.address; | 230 | cmd.addr.io.port = perf->control_register.address; |
231 | cmd.addr.io.bit_width = perf->control_register.bit_width; | 231 | cmd.addr.io.bit_width = perf->control_register.bit_width; |
232 | break; | 232 | break; |
@@ -234,7 +234,7 @@ static u32 get_cur_val(cpumask_t mask) | |||
234 | return 0; | 234 | return 0; |
235 | } | 235 | } |
236 | 236 | ||
237 | cmd.mask = mask; | 237 | cmd.mask = *mask; |
238 | 238 | ||
239 | drv_read(&cmd); | 239 | drv_read(&cmd); |
240 | 240 | ||
@@ -271,7 +271,7 @@ static unsigned int get_measured_perf(unsigned int cpu) | |||
271 | unsigned int retval; | 271 | unsigned int retval; |
272 | 272 | ||
273 | saved_mask = current->cpus_allowed; | 273 | saved_mask = current->cpus_allowed; |
274 | set_cpus_allowed(current, cpumask_of_cpu(cpu)); | 274 | set_cpus_allowed_ptr(current, &cpumask_of_cpu(cpu)); |
275 | if (get_cpu() != cpu) { | 275 | if (get_cpu() != cpu) { |
276 | /* We were not able to run on requested processor */ | 276 | /* We were not able to run on requested processor */ |
277 | put_cpu(); | 277 | put_cpu(); |
@@ -329,7 +329,7 @@ static unsigned int get_measured_perf(unsigned int cpu) | |||
329 | retval = per_cpu(drv_data, cpu)->max_freq * perf_percent / 100; | 329 | retval = per_cpu(drv_data, cpu)->max_freq * perf_percent / 100; |
330 | 330 | ||
331 | put_cpu(); | 331 | put_cpu(); |
332 | set_cpus_allowed(current, saved_mask); | 332 | set_cpus_allowed_ptr(current, &saved_mask); |
333 | 333 | ||
334 | dprintk("cpu %d: performance percent %d\n", cpu, perf_percent); | 334 | dprintk("cpu %d: performance percent %d\n", cpu, perf_percent); |
335 | return retval; | 335 | return retval; |
@@ -347,13 +347,13 @@ static unsigned int get_cur_freq_on_cpu(unsigned int cpu) | |||
347 | return 0; | 347 | return 0; |
348 | } | 348 | } |
349 | 349 | ||
350 | freq = extract_freq(get_cur_val(cpumask_of_cpu(cpu)), data); | 350 | freq = extract_freq(get_cur_val(&cpumask_of_cpu(cpu)), data); |
351 | dprintk("cur freq = %u\n", freq); | 351 | dprintk("cur freq = %u\n", freq); |
352 | 352 | ||
353 | return freq; | 353 | return freq; |
354 | } | 354 | } |
355 | 355 | ||
356 | static unsigned int check_freqs(cpumask_t mask, unsigned int freq, | 356 | static unsigned int check_freqs(const cpumask_t *mask, unsigned int freq, |
357 | struct acpi_cpufreq_data *data) | 357 | struct acpi_cpufreq_data *data) |
358 | { | 358 | { |
359 | unsigned int cur_freq; | 359 | unsigned int cur_freq; |
@@ -449,7 +449,7 @@ static int acpi_cpufreq_target(struct cpufreq_policy *policy, | |||
449 | drv_write(&cmd); | 449 | drv_write(&cmd); |
450 | 450 | ||
451 | if (acpi_pstate_strict) { | 451 | if (acpi_pstate_strict) { |
452 | if (!check_freqs(cmd.mask, freqs.new, data)) { | 452 | if (!check_freqs(&cmd.mask, freqs.new, data)) { |
453 | dprintk("acpi_cpufreq_target failed (%d)\n", | 453 | dprintk("acpi_cpufreq_target failed (%d)\n", |
454 | policy->cpu); | 454 | policy->cpu); |
455 | return -EAGAIN; | 455 | return -EAGAIN; |
diff --git a/arch/x86/kernel/cpu/cpufreq/p4-clockmod.c b/arch/x86/kernel/cpu/cpufreq/p4-clockmod.c index 14791ec55cfd..199e4e05e5dc 100644 --- a/arch/x86/kernel/cpu/cpufreq/p4-clockmod.c +++ b/arch/x86/kernel/cpu/cpufreq/p4-clockmod.c | |||
@@ -289,8 +289,8 @@ static int __init cpufreq_p4_init(void) | |||
289 | if (c->x86_vendor != X86_VENDOR_INTEL) | 289 | if (c->x86_vendor != X86_VENDOR_INTEL) |
290 | return -ENODEV; | 290 | return -ENODEV; |
291 | 291 | ||
292 | if (!test_bit(X86_FEATURE_ACPI, c->x86_capability) || | 292 | if (!test_cpu_cap(c, X86_FEATURE_ACPI) || |
293 | !test_bit(X86_FEATURE_ACC, c->x86_capability)) | 293 | !test_cpu_cap(c, X86_FEATURE_ACC)) |
294 | return -ENODEV; | 294 | return -ENODEV; |
295 | 295 | ||
296 | ret = cpufreq_register_driver(&p4clockmod_driver); | 296 | ret = cpufreq_register_driver(&p4clockmod_driver); |
diff --git a/arch/x86/kernel/cpu/cpufreq/powernow-k8.c b/arch/x86/kernel/cpu/cpufreq/powernow-k8.c index c99d59d8ef2e..46d4034d9f37 100644 --- a/arch/x86/kernel/cpu/cpufreq/powernow-k8.c +++ b/arch/x86/kernel/cpu/cpufreq/powernow-k8.c | |||
@@ -478,12 +478,12 @@ static int core_voltage_post_transition(struct powernow_k8_data *data, u32 reqvi | |||
478 | 478 | ||
479 | static int check_supported_cpu(unsigned int cpu) | 479 | static int check_supported_cpu(unsigned int cpu) |
480 | { | 480 | { |
481 | cpumask_t oldmask = CPU_MASK_ALL; | 481 | cpumask_t oldmask; |
482 | u32 eax, ebx, ecx, edx; | 482 | u32 eax, ebx, ecx, edx; |
483 | unsigned int rc = 0; | 483 | unsigned int rc = 0; |
484 | 484 | ||
485 | oldmask = current->cpus_allowed; | 485 | oldmask = current->cpus_allowed; |
486 | set_cpus_allowed(current, cpumask_of_cpu(cpu)); | 486 | set_cpus_allowed_ptr(current, &cpumask_of_cpu(cpu)); |
487 | 487 | ||
488 | if (smp_processor_id() != cpu) { | 488 | if (smp_processor_id() != cpu) { |
489 | printk(KERN_ERR PFX "limiting to cpu %u failed\n", cpu); | 489 | printk(KERN_ERR PFX "limiting to cpu %u failed\n", cpu); |
@@ -528,7 +528,7 @@ static int check_supported_cpu(unsigned int cpu) | |||
528 | rc = 1; | 528 | rc = 1; |
529 | 529 | ||
530 | out: | 530 | out: |
531 | set_cpus_allowed(current, oldmask); | 531 | set_cpus_allowed_ptr(current, &oldmask); |
532 | return rc; | 532 | return rc; |
533 | } | 533 | } |
534 | 534 | ||
@@ -1015,7 +1015,7 @@ static int transition_frequency_pstate(struct powernow_k8_data *data, unsigned i | |||
1015 | /* Driver entry point to switch to the target frequency */ | 1015 | /* Driver entry point to switch to the target frequency */ |
1016 | static int powernowk8_target(struct cpufreq_policy *pol, unsigned targfreq, unsigned relation) | 1016 | static int powernowk8_target(struct cpufreq_policy *pol, unsigned targfreq, unsigned relation) |
1017 | { | 1017 | { |
1018 | cpumask_t oldmask = CPU_MASK_ALL; | 1018 | cpumask_t oldmask; |
1019 | struct powernow_k8_data *data = per_cpu(powernow_data, pol->cpu); | 1019 | struct powernow_k8_data *data = per_cpu(powernow_data, pol->cpu); |
1020 | u32 checkfid; | 1020 | u32 checkfid; |
1021 | u32 checkvid; | 1021 | u32 checkvid; |
@@ -1030,7 +1030,7 @@ static int powernowk8_target(struct cpufreq_policy *pol, unsigned targfreq, unsi | |||
1030 | 1030 | ||
1031 | /* only run on specific CPU from here on */ | 1031 | /* only run on specific CPU from here on */ |
1032 | oldmask = current->cpus_allowed; | 1032 | oldmask = current->cpus_allowed; |
1033 | set_cpus_allowed(current, cpumask_of_cpu(pol->cpu)); | 1033 | set_cpus_allowed_ptr(current, &cpumask_of_cpu(pol->cpu)); |
1034 | 1034 | ||
1035 | if (smp_processor_id() != pol->cpu) { | 1035 | if (smp_processor_id() != pol->cpu) { |
1036 | printk(KERN_ERR PFX "limiting to cpu %u failed\n", pol->cpu); | 1036 | printk(KERN_ERR PFX "limiting to cpu %u failed\n", pol->cpu); |
@@ -1085,7 +1085,7 @@ static int powernowk8_target(struct cpufreq_policy *pol, unsigned targfreq, unsi | |||
1085 | ret = 0; | 1085 | ret = 0; |
1086 | 1086 | ||
1087 | err_out: | 1087 | err_out: |
1088 | set_cpus_allowed(current, oldmask); | 1088 | set_cpus_allowed_ptr(current, &oldmask); |
1089 | return ret; | 1089 | return ret; |
1090 | } | 1090 | } |
1091 | 1091 | ||
@@ -1104,7 +1104,7 @@ static int powernowk8_verify(struct cpufreq_policy *pol) | |||
1104 | static int __cpuinit powernowk8_cpu_init(struct cpufreq_policy *pol) | 1104 | static int __cpuinit powernowk8_cpu_init(struct cpufreq_policy *pol) |
1105 | { | 1105 | { |
1106 | struct powernow_k8_data *data; | 1106 | struct powernow_k8_data *data; |
1107 | cpumask_t oldmask = CPU_MASK_ALL; | 1107 | cpumask_t oldmask; |
1108 | int rc; | 1108 | int rc; |
1109 | 1109 | ||
1110 | if (!cpu_online(pol->cpu)) | 1110 | if (!cpu_online(pol->cpu)) |
@@ -1145,7 +1145,7 @@ static int __cpuinit powernowk8_cpu_init(struct cpufreq_policy *pol) | |||
1145 | 1145 | ||
1146 | /* only run on specific CPU from here on */ | 1146 | /* only run on specific CPU from here on */ |
1147 | oldmask = current->cpus_allowed; | 1147 | oldmask = current->cpus_allowed; |
1148 | set_cpus_allowed(current, cpumask_of_cpu(pol->cpu)); | 1148 | set_cpus_allowed_ptr(current, &cpumask_of_cpu(pol->cpu)); |
1149 | 1149 | ||
1150 | if (smp_processor_id() != pol->cpu) { | 1150 | if (smp_processor_id() != pol->cpu) { |
1151 | printk(KERN_ERR PFX "limiting to cpu %u failed\n", pol->cpu); | 1151 | printk(KERN_ERR PFX "limiting to cpu %u failed\n", pol->cpu); |
@@ -1164,7 +1164,7 @@ static int __cpuinit powernowk8_cpu_init(struct cpufreq_policy *pol) | |||
1164 | fidvid_msr_init(); | 1164 | fidvid_msr_init(); |
1165 | 1165 | ||
1166 | /* run on any CPU again */ | 1166 | /* run on any CPU again */ |
1167 | set_cpus_allowed(current, oldmask); | 1167 | set_cpus_allowed_ptr(current, &oldmask); |
1168 | 1168 | ||
1169 | if (cpu_family == CPU_HW_PSTATE) | 1169 | if (cpu_family == CPU_HW_PSTATE) |
1170 | pol->cpus = cpumask_of_cpu(pol->cpu); | 1170 | pol->cpus = cpumask_of_cpu(pol->cpu); |
@@ -1205,7 +1205,7 @@ static int __cpuinit powernowk8_cpu_init(struct cpufreq_policy *pol) | |||
1205 | return 0; | 1205 | return 0; |
1206 | 1206 | ||
1207 | err_out: | 1207 | err_out: |
1208 | set_cpus_allowed(current, oldmask); | 1208 | set_cpus_allowed_ptr(current, &oldmask); |
1209 | powernow_k8_cpu_exit_acpi(data); | 1209 | powernow_k8_cpu_exit_acpi(data); |
1210 | 1210 | ||
1211 | kfree(data); | 1211 | kfree(data); |
@@ -1242,10 +1242,11 @@ static unsigned int powernowk8_get (unsigned int cpu) | |||
1242 | if (!data) | 1242 | if (!data) |
1243 | return -EINVAL; | 1243 | return -EINVAL; |
1244 | 1244 | ||
1245 | set_cpus_allowed(current, cpumask_of_cpu(cpu)); | 1245 | set_cpus_allowed_ptr(current, &cpumask_of_cpu(cpu)); |
1246 | if (smp_processor_id() != cpu) { | 1246 | if (smp_processor_id() != cpu) { |
1247 | printk(KERN_ERR PFX "limiting to CPU %d failed in powernowk8_get\n", cpu); | 1247 | printk(KERN_ERR PFX |
1248 | set_cpus_allowed(current, oldmask); | 1248 | "limiting to CPU %d failed in powernowk8_get\n", cpu); |
1249 | set_cpus_allowed_ptr(current, &oldmask); | ||
1249 | return 0; | 1250 | return 0; |
1250 | } | 1251 | } |
1251 | 1252 | ||
@@ -1253,13 +1254,14 @@ static unsigned int powernowk8_get (unsigned int cpu) | |||
1253 | goto out; | 1254 | goto out; |
1254 | 1255 | ||
1255 | if (cpu_family == CPU_HW_PSTATE) | 1256 | if (cpu_family == CPU_HW_PSTATE) |
1256 | khz = find_khz_freq_from_pstate(data->powernow_table, data->currpstate); | 1257 | khz = find_khz_freq_from_pstate(data->powernow_table, |
1258 | data->currpstate); | ||
1257 | else | 1259 | else |
1258 | khz = find_khz_freq_from_fid(data->currfid); | 1260 | khz = find_khz_freq_from_fid(data->currfid); |
1259 | 1261 | ||
1260 | 1262 | ||
1261 | out: | 1263 | out: |
1262 | set_cpus_allowed(current, oldmask); | 1264 | set_cpus_allowed_ptr(current, &oldmask); |
1263 | return khz; | 1265 | return khz; |
1264 | } | 1266 | } |
1265 | 1267 | ||
diff --git a/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c b/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c index 3031f1196192..908dd347c67e 100644 --- a/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c +++ b/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c | |||
@@ -315,7 +315,7 @@ static unsigned int get_cur_freq(unsigned int cpu) | |||
315 | cpumask_t saved_mask; | 315 | cpumask_t saved_mask; |
316 | 316 | ||
317 | saved_mask = current->cpus_allowed; | 317 | saved_mask = current->cpus_allowed; |
318 | set_cpus_allowed(current, cpumask_of_cpu(cpu)); | 318 | set_cpus_allowed_ptr(current, &cpumask_of_cpu(cpu)); |
319 | if (smp_processor_id() != cpu) | 319 | if (smp_processor_id() != cpu) |
320 | return 0; | 320 | return 0; |
321 | 321 | ||
@@ -333,7 +333,7 @@ static unsigned int get_cur_freq(unsigned int cpu) | |||
333 | clock_freq = extract_clock(l, cpu, 1); | 333 | clock_freq = extract_clock(l, cpu, 1); |
334 | } | 334 | } |
335 | 335 | ||
336 | set_cpus_allowed(current, saved_mask); | 336 | set_cpus_allowed_ptr(current, &saved_mask); |
337 | return clock_freq; | 337 | return clock_freq; |
338 | } | 338 | } |
339 | 339 | ||
@@ -487,7 +487,7 @@ static int centrino_target (struct cpufreq_policy *policy, | |||
487 | else | 487 | else |
488 | cpu_set(j, set_mask); | 488 | cpu_set(j, set_mask); |
489 | 489 | ||
490 | set_cpus_allowed(current, set_mask); | 490 | set_cpus_allowed_ptr(current, &set_mask); |
491 | preempt_disable(); | 491 | preempt_disable(); |
492 | if (unlikely(!cpu_isset(smp_processor_id(), set_mask))) { | 492 | if (unlikely(!cpu_isset(smp_processor_id(), set_mask))) { |
493 | dprintk("couldn't limit to CPUs in this domain\n"); | 493 | dprintk("couldn't limit to CPUs in this domain\n"); |
@@ -555,7 +555,8 @@ static int centrino_target (struct cpufreq_policy *policy, | |||
555 | 555 | ||
556 | if (!cpus_empty(covered_cpus)) { | 556 | if (!cpus_empty(covered_cpus)) { |
557 | for_each_cpu_mask(j, covered_cpus) { | 557 | for_each_cpu_mask(j, covered_cpus) { |
558 | set_cpus_allowed(current, cpumask_of_cpu(j)); | 558 | set_cpus_allowed_ptr(current, |
559 | &cpumask_of_cpu(j)); | ||
559 | wrmsr(MSR_IA32_PERF_CTL, oldmsr, h); | 560 | wrmsr(MSR_IA32_PERF_CTL, oldmsr, h); |
560 | } | 561 | } |
561 | } | 562 | } |
@@ -569,12 +570,12 @@ static int centrino_target (struct cpufreq_policy *policy, | |||
569 | cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); | 570 | cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); |
570 | } | 571 | } |
571 | } | 572 | } |
572 | set_cpus_allowed(current, saved_mask); | 573 | set_cpus_allowed_ptr(current, &saved_mask); |
573 | return 0; | 574 | return 0; |
574 | 575 | ||
575 | migrate_end: | 576 | migrate_end: |
576 | preempt_enable(); | 577 | preempt_enable(); |
577 | set_cpus_allowed(current, saved_mask); | 578 | set_cpus_allowed_ptr(current, &saved_mask); |
578 | return 0; | 579 | return 0; |
579 | } | 580 | } |
580 | 581 | ||
diff --git a/arch/x86/kernel/cpu/cpufreq/speedstep-ich.c b/arch/x86/kernel/cpu/cpufreq/speedstep-ich.c index 14d68aa301ee..1b50244b1fdf 100644 --- a/arch/x86/kernel/cpu/cpufreq/speedstep-ich.c +++ b/arch/x86/kernel/cpu/cpufreq/speedstep-ich.c | |||
@@ -229,22 +229,22 @@ static unsigned int speedstep_detect_chipset (void) | |||
229 | return 0; | 229 | return 0; |
230 | } | 230 | } |
231 | 231 | ||
232 | static unsigned int _speedstep_get(cpumask_t cpus) | 232 | static unsigned int _speedstep_get(const cpumask_t *cpus) |
233 | { | 233 | { |
234 | unsigned int speed; | 234 | unsigned int speed; |
235 | cpumask_t cpus_allowed; | 235 | cpumask_t cpus_allowed; |
236 | 236 | ||
237 | cpus_allowed = current->cpus_allowed; | 237 | cpus_allowed = current->cpus_allowed; |
238 | set_cpus_allowed(current, cpus); | 238 | set_cpus_allowed_ptr(current, cpus); |
239 | speed = speedstep_get_processor_frequency(speedstep_processor); | 239 | speed = speedstep_get_processor_frequency(speedstep_processor); |
240 | set_cpus_allowed(current, cpus_allowed); | 240 | set_cpus_allowed_ptr(current, &cpus_allowed); |
241 | dprintk("detected %u kHz as current frequency\n", speed); | 241 | dprintk("detected %u kHz as current frequency\n", speed); |
242 | return speed; | 242 | return speed; |
243 | } | 243 | } |
244 | 244 | ||
245 | static unsigned int speedstep_get(unsigned int cpu) | 245 | static unsigned int speedstep_get(unsigned int cpu) |
246 | { | 246 | { |
247 | return _speedstep_get(cpumask_of_cpu(cpu)); | 247 | return _speedstep_get(&cpumask_of_cpu(cpu)); |
248 | } | 248 | } |
249 | 249 | ||
250 | /** | 250 | /** |
@@ -267,7 +267,7 @@ static int speedstep_target (struct cpufreq_policy *policy, | |||
267 | if (cpufreq_frequency_table_target(policy, &speedstep_freqs[0], target_freq, relation, &newstate)) | 267 | if (cpufreq_frequency_table_target(policy, &speedstep_freqs[0], target_freq, relation, &newstate)) |
268 | return -EINVAL; | 268 | return -EINVAL; |
269 | 269 | ||
270 | freqs.old = _speedstep_get(policy->cpus); | 270 | freqs.old = _speedstep_get(&policy->cpus); |
271 | freqs.new = speedstep_freqs[newstate].frequency; | 271 | freqs.new = speedstep_freqs[newstate].frequency; |
272 | freqs.cpu = policy->cpu; | 272 | freqs.cpu = policy->cpu; |
273 | 273 | ||
@@ -285,12 +285,12 @@ static int speedstep_target (struct cpufreq_policy *policy, | |||
285 | } | 285 | } |
286 | 286 | ||
287 | /* switch to physical CPU where state is to be changed */ | 287 | /* switch to physical CPU where state is to be changed */ |
288 | set_cpus_allowed(current, policy->cpus); | 288 | set_cpus_allowed_ptr(current, &policy->cpus); |
289 | 289 | ||
290 | speedstep_set_state(newstate); | 290 | speedstep_set_state(newstate); |
291 | 291 | ||
292 | /* allow to be run on all CPUs */ | 292 | /* allow to be run on all CPUs */ |
293 | set_cpus_allowed(current, cpus_allowed); | 293 | set_cpus_allowed_ptr(current, &cpus_allowed); |
294 | 294 | ||
295 | for_each_cpu_mask(i, policy->cpus) { | 295 | for_each_cpu_mask(i, policy->cpus) { |
296 | freqs.cpu = i; | 296 | freqs.cpu = i; |
@@ -326,7 +326,7 @@ static int speedstep_cpu_init(struct cpufreq_policy *policy) | |||
326 | #endif | 326 | #endif |
327 | 327 | ||
328 | cpus_allowed = current->cpus_allowed; | 328 | cpus_allowed = current->cpus_allowed; |
329 | set_cpus_allowed(current, policy->cpus); | 329 | set_cpus_allowed_ptr(current, &policy->cpus); |
330 | 330 | ||
331 | /* detect low and high frequency and transition latency */ | 331 | /* detect low and high frequency and transition latency */ |
332 | result = speedstep_get_freqs(speedstep_processor, | 332 | result = speedstep_get_freqs(speedstep_processor, |
@@ -334,12 +334,12 @@ static int speedstep_cpu_init(struct cpufreq_policy *policy) | |||
334 | &speedstep_freqs[SPEEDSTEP_HIGH].frequency, | 334 | &speedstep_freqs[SPEEDSTEP_HIGH].frequency, |
335 | &policy->cpuinfo.transition_latency, | 335 | &policy->cpuinfo.transition_latency, |
336 | &speedstep_set_state); | 336 | &speedstep_set_state); |
337 | set_cpus_allowed(current, cpus_allowed); | 337 | set_cpus_allowed_ptr(current, &cpus_allowed); |
338 | if (result) | 338 | if (result) |
339 | return result; | 339 | return result; |
340 | 340 | ||
341 | /* get current speed setting */ | 341 | /* get current speed setting */ |
342 | speed = _speedstep_get(policy->cpus); | 342 | speed = _speedstep_get(&policy->cpus); |
343 | if (!speed) | 343 | if (!speed) |
344 | return -EIO; | 344 | return -EIO; |
345 | 345 | ||