summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/kernel/apic/vector.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/arch/x86/kernel/apic/vector.c b/arch/x86/kernel/apic/vector.c
index 67d20ee60e33..93edc2236282 100644
--- a/arch/x86/kernel/apic/vector.c
+++ b/arch/x86/kernel/apic/vector.c
@@ -136,8 +136,7 @@ static int __assign_irq_vector(int irq, struct apic_chip_data *d,
while (cpu < nr_cpu_ids) {
int new_cpu, offset;
- /* Get the possible target cpus for @mask/@cpu from the apic */
- apic->vector_allocation_domain(cpu, vector_cpumask, mask);
+ cpumask_copy(vector_cpumask, cpumask_of(cpu));
/*
* Clear the offline cpus from @vector_cpumask for searching
@@ -367,17 +366,11 @@ static int x86_vector_alloc_irqs(struct irq_domain *domain, unsigned int virq,
irq_data->chip = &lapic_controller;
irq_data->chip_data = data;
irq_data->hwirq = virq + i;
+ irqd_set_single_target(irq_data);
err = assign_irq_vector_policy(virq + i, node, data, info,
irq_data);
if (err)
goto error;
- /*
- * If the apic destination mode is physical, then the
- * effective affinity is restricted to a single target
- * CPU. Mark the interrupt accordingly.
- */
- if (!apic->irq_dest_mode)
- irqd_set_single_target(irq_data);
}
return 0;
@@ -434,7 +427,7 @@ static void __init init_legacy_irqs(void)
BUG_ON(!data);
data->cfg.vector = ISA_IRQ_VECTOR(i);
- cpumask_setall(data->domain);
+ cpumask_copy(data->domain, cpumask_of(0));
irq_set_chip_data(i, data);
}
}