diff options
Diffstat (limited to 'arch/x86/kernel/apic/summit_32.c')
-rw-r--r-- | arch/x86/kernel/apic/summit_32.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/x86/kernel/apic/summit_32.c b/arch/x86/kernel/apic/summit_32.c index 5766d84f12d..79d360f6729 100644 --- a/arch/x86/kernel/apic/summit_32.c +++ b/arch/x86/kernel/apic/summit_32.c | |||
@@ -272,7 +272,7 @@ summit_cpu_mask_to_apicid(const struct cpumask *cpumask, unsigned int *dest_id) | |||
272 | /* | 272 | /* |
273 | * The cpus in the mask must all be on the apic cluster. | 273 | * The cpus in the mask must all be on the apic cluster. |
274 | */ | 274 | */ |
275 | for_each_cpu(cpu, cpumask) { | 275 | for_each_cpu_and(cpu, cpumask, cpu_online_mask) { |
276 | int new_apicid = early_per_cpu(x86_cpu_to_logical_apicid, cpu); | 276 | int new_apicid = early_per_cpu(x86_cpu_to_logical_apicid, cpu); |
277 | 277 | ||
278 | if (round && APIC_CLUSTER(apicid) != APIC_CLUSTER(new_apicid)) { | 278 | if (round && APIC_CLUSTER(apicid) != APIC_CLUSTER(new_apicid)) { |
@@ -298,7 +298,6 @@ summit_cpu_mask_to_apicid_and(const struct cpumask *inmask, | |||
298 | return 0; | 298 | return 0; |
299 | 299 | ||
300 | cpumask_and(cpumask, inmask, andmask); | 300 | cpumask_and(cpumask, inmask, andmask); |
301 | cpumask_and(cpumask, cpumask, cpu_online_mask); | ||
302 | summit_cpu_mask_to_apicid(cpumask, apicid); | 301 | summit_cpu_mask_to_apicid(cpumask, apicid); |
303 | 302 | ||
304 | free_cpumask_var(cpumask); | 303 | free_cpumask_var(cpumask); |