Messages in this thread Patch in this message | | | Date | Wed, 8 Apr 2009 18:50:17 +0400 | From | Cyrill Gorcunov <> | Subject | [PATCH -tip] x86: do_IRQ - send EOI for x86-32 on irq without handler v2 |
| |
If IRQ has no handler it remains non-Ack'ed even if APIC is not requested for being disabled. Fix it.
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> ---
|more stuff needs fixing here first: | |arch/x86/kernel/irq.c: In function ‘do_IRQ’: |arch/x86/kernel/irq.c:226: error: ‘disable_apic’ undeclared (first use in this |function) |arch/x86/kernel/irq.c:226: error: (Each undeclared identifier is reported only |once |arch/x86/kernel/irq.c:226: error: for each function it appears in.) | |like making 'disable_apic' available everywhere. | |Or better yet: introduce a dummy apic->write() method in the |disable_apic=1 case so we can call a straight ack_APIC_irq(). | | Ingo
Ingo, I think introducing additional dummy here would be a bit expencive -- a number of callers of ack_APIC_irq just should not check for disable_apic since it's not needed. disable_apic is to depend on CONFIG_X86_LOCAL_APIC rather then CONFIG_X86_64 actually. So make it then. Or you mean something else? Like new apic->write_eoi operation? (I'm a bit tired so brain is a half functional now :)
arch/x86/kernel/irq.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
Index: linux-2.6.git/arch/x86/kernel/irq.c ===================================================================== --- linux-2.6.git.orig/arch/x86/kernel/irq.c +++ linux-2.6.git/arch/x86/kernel/irq.c @@ -223,10 +223,10 @@ unsigned int __irq_entry do_IRQ(struct p irq = __get_cpu_var(vector_irq)[vector]; if (!handle_irq(irq, regs)) { -#ifdef CONFIG_X86_64 +#ifdef CONFIG_X86_LOCAL_APIC if (!disable_apic) - ack_APIC_irq(); #endif + ack_APIC_irq(); if (printk_ratelimit()) printk(KERN_EMERG "%s: %d.%d No irq handler for vector (irq %d)\n", -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |