aboutsummaryrefslogtreecommitdiffstats
path: root/arch/i386/kernel/io_apic.c
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2006-06-26 07:56:46 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-26 13:48:15 -0400
commit6ebcc00e95fa78218a048a88d8d5ee491aa7d6d0 (patch)
tree9c9302b86c8a0b15c69371973c77afbb58542a5c /arch/i386/kernel/io_apic.c
parent0a1ad60d7a7eb433095bc1b2c8b475f3f278f61d (diff)
[PATCH] i386/x86-64: simplify ioapic_register_intr()
Simplify (remove duplication of) code in ioapic_register_intr(). Signed-off-by: Jan Beulich <jbeulich@novell.com> Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/i386/kernel/io_apic.c')
-rw-r--r--arch/i386/kernel/io_apic.c23
1 files changed, 8 insertions, 15 deletions
diff --git a/arch/i386/kernel/io_apic.c b/arch/i386/kernel/io_apic.c
index 43ffdd012d26..5a1a5412015c 100644
--- a/arch/i386/kernel/io_apic.c
+++ b/arch/i386/kernel/io_apic.c
@@ -1205,21 +1205,14 @@ static struct hw_interrupt_type ioapic_edge_type;
1205 1205
1206static inline void ioapic_register_intr(int irq, int vector, unsigned long trigger) 1206static inline void ioapic_register_intr(int irq, int vector, unsigned long trigger)
1207{ 1207{
1208 if (use_pci_vector() && !platform_legacy_irq(irq)) { 1208 unsigned idx = use_pci_vector() && !platform_legacy_irq(irq) ? vector : irq;
1209 if ((trigger == IOAPIC_AUTO && IO_APIC_irq_trigger(irq)) || 1209
1210 trigger == IOAPIC_LEVEL) 1210 if ((trigger == IOAPIC_AUTO && IO_APIC_irq_trigger(irq)) ||
1211 irq_desc[vector].handler = &ioapic_level_type; 1211 trigger == IOAPIC_LEVEL)
1212 else 1212 irq_desc[idx].handler = &ioapic_level_type;
1213 irq_desc[vector].handler = &ioapic_edge_type; 1213 else
1214 set_intr_gate(vector, interrupt[vector]); 1214 irq_desc[idx].handler = &ioapic_edge_type;
1215 } else { 1215 set_intr_gate(vector, interrupt[idx]);
1216 if ((trigger == IOAPIC_AUTO && IO_APIC_irq_trigger(irq)) ||
1217 trigger == IOAPIC_LEVEL)
1218 irq_desc[irq].handler = &ioapic_level_type;
1219 else
1220 irq_desc[irq].handler = &ioapic_edge_type;
1221 set_intr_gate(vector, interrupt[irq]);
1222 }
1223} 1216}
1224 1217
1225static void __init setup_IO_APIC_irqs(void) 1218static void __init setup_IO_APIC_irqs(void)