diff options
-rw-r--r-- | arch/x86/kernel/apic/io_apic.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c index 1a30587a6bc2..2430b31c9857 100644 --- a/arch/x86/kernel/apic/io_apic.c +++ b/arch/x86/kernel/apic/io_apic.c | |||
@@ -1428,6 +1428,14 @@ static void setup_IO_APIC_irq(int apic_id, int pin, unsigned int irq, struct irq | |||
1428 | 1428 | ||
1429 | cfg = desc->chip_data; | 1429 | cfg = desc->chip_data; |
1430 | 1430 | ||
1431 | /* | ||
1432 | * For legacy irqs, cfg->domain starts with cpu 0 for legacy | ||
1433 | * controllers like 8259. Now that IO-APIC can handle this irq, update | ||
1434 | * the cfg->domain. | ||
1435 | */ | ||
1436 | if (irq < nr_legacy_irqs && cpumask_test_cpu(0, cfg->domain)) | ||
1437 | apic->vector_allocation_domain(0, cfg->domain); | ||
1438 | |||
1431 | if (assign_irq_vector(irq, cfg, apic->target_cpus())) | 1439 | if (assign_irq_vector(irq, cfg, apic->target_cpus())) |
1432 | return; | 1440 | return; |
1433 | 1441 | ||