Re: [Patch V4 29/42] x86, irq: introduce two helper functions to support irqdomain map operation

Mika Westerberg
2014-08-22T12:41:58Z

On Fri, Aug 22, 2014 at 03:00:48AM +0800, Jiang Liu wrote:
> Hi Mika,
> I'm out of office until next Tuesday. Will handle this
> when back to work. Could you please help to take a look at
> mp_set_gsi_attr() to check whether it could be used to resolve
> this issue.

The problem seems to be that when we allocate the legacy 16 IRQ range,
they will be set to edge-triggered and then info->set is set to 1
preventing any further configuration (if I understand that part right).

I tried simply following and it seems to work. Not sure how correct it
is, though.

diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index 29290f554e79..29c5d4fa9e86 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -1531,8 +1531,7 @@ static void __init setup_IO_APIC_irqs(void)
KERN_DEBUG " apic %d pin %d not connected\n",
mpc_ioapic_id(ioapic), pin);
else
- pin_2_irq(idx, ioapic, pin,
- ioapic ? 0 : IOAPIC_MAP_ALLOC);
+ pin_2_irq(idx, ioapic, pin, 0);
}
}