aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/apic/summit_32.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/apic/summit_32.c')
-rw-r--r--arch/x86/kernel/apic/summit_32.c3
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);