From 0f1214992b6adb88576791c96be3cfba744dcdcb Mon Sep 17 00:00:00 2001 From: Suresh Siddha Date: Wed, 8 Aug 2012 12:16:52 -0700 Subject: [PATCH] --- yaml --- r: 321839 b: refs/heads/master c: f1c6300183dbf5b9da25988e13f6f25a9e27151b h: refs/heads/master i: 321837: 329b9d95427fbc534f627ba5fd384c6b6dc45275 321835: d5683ed08de5f0037c8d9ac3e17e2be705320b6c 321831: 2fbcd29585811a2c045f769f5f0265b9fa800943 321823: 08f8d65a3b0b62be9f74ae709abbbf159b7b8cbb v: v3 --- [refs] | 2 +- trunk/arch/x86/kernel/apic/io_apic.c | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index ba98c06ea24f..646727b7ca21 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 484d90eec884d814b005c9736bcf3fd018acba65 +refs/heads/master: f1c6300183dbf5b9da25988e13f6f25a9e27151b diff --git a/trunk/arch/x86/kernel/apic/io_apic.c b/trunk/arch/x86/kernel/apic/io_apic.c index a6c64aaddf9a..c265593ec2cd 100644 --- a/trunk/arch/x86/kernel/apic/io_apic.c +++ b/trunk/arch/x86/kernel/apic/io_apic.c @@ -1356,6 +1356,16 @@ static void setup_ioapic_irq(unsigned int irq, struct irq_cfg *cfg, if (!IO_APIC_IRQ(irq)) return; + /* + * For legacy irqs, cfg->domain starts with cpu 0. Now that IO-APIC + * can handle this irq and the apic driver is finialized at this point, + * update the cfg->domain. + */ + if (irq < legacy_pic->nr_legacy_irqs && + cpumask_equal(cfg->domain, cpumask_of(0))) + apic->vector_allocation_domain(0, cfg->domain, + apic->target_cpus()); + if (assign_irq_vector(irq, cfg, apic->target_cpus())) return;