forked from luck/tmp_suning_uos_patched
x86: Don't setup ioapic irq for sci twice
The sparseirq rework triggered a warning in the iommu code, which was caused by setting up ioapic for ACPI irq 9 twice. This function is solely to handle interrupts which are on a secondary ioapic and outside the legacy irq range. Replace the sparse irq_to_desc check with a non ifdeffed version. [ tglx: Moved it before the ioapic sparse conversion and simplified the inverse logic ] Signed-off-by: Yinghai Lu <yinghai@kernel.org> LKML-Reference: <4CB00122.3030301@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
f981a3dc19
commit
fe6dab4e79
@ -1565,11 +1565,11 @@ void setup_IO_APIC_irq_extra(u32 gsi)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
irq = pin_2_irq(idx, apic_id, pin);
|
irq = pin_2_irq(idx, apic_id, pin);
|
||||||
#ifdef CONFIG_SPARSE_IRQ
|
|
||||||
desc = irq_to_desc(irq);
|
/* Only handle the non legacy irqs on secondary ioapics */
|
||||||
if (desc)
|
if (apic_id == 0 || irq < NR_IRQS_LEGACY)
|
||||||
return;
|
return;
|
||||||
#endif
|
|
||||||
desc = irq_to_desc_alloc_node(irq, node);
|
desc = irq_to_desc_alloc_node(irq, node);
|
||||||
if (!desc) {
|
if (!desc) {
|
||||||
printk(KERN_INFO "can not get irq_desc for %d\n", irq);
|
printk(KERN_INFO "can not get irq_desc for %d\n", irq);
|
||||||
|
Loading…
Reference in New Issue
Block a user