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 | ||
