aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/io_apic.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-01-28 01:17:26 -0500
committerIngo Molnar <mingo@elte.hu>2009-01-28 17:20:22 -0500
commit33a201fac698a93d9d1ffa77030ba2ff38d1a3d1 (patch)
treec1087d996f5d83f987e83380f27aa73c7aaa0871 /arch/x86/kernel/io_apic.c
parent72ce016583916fb7ffcbaa6a3e1f8f731b79a865 (diff)
x86, apic: streamline the ->multi_timer_check() quirk
only NUMAQ uses this quirk: to prevent the timer IRQ from being added on secondary nodes. All other genapic templates can have a NULL ->multi_timer_check() callback. Also, extend the generic code to treat a NULL pointer accordingly. Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/io_apic.c')
-rw-r--r--arch/x86/kernel/io_apic.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/arch/x86/kernel/io_apic.c b/arch/x86/kernel/io_apic.c
index db79ad9a7646..282ea112f3cf 100644
--- a/arch/x86/kernel/io_apic.c
+++ b/arch/x86/kernel/io_apic.c
@@ -1618,10 +1618,15 @@ static void __init setup_IO_APIC_irqs(void)
1618 } 1618 }
1619 1619
1620 irq = pin_2_irq(idx, apic_id, pin); 1620 irq = pin_2_irq(idx, apic_id, pin);
1621#ifdef CONFIG_X86_32 1621
1622 if (multi_timer_check(apic_id, irq)) 1622 /*
1623 * Skip the timer IRQ if there's a quirk handler
1624 * installed and if it returns 1:
1625 */
1626 if (apic->multi_timer_check &&
1627 apic->multi_timer_check(apic_id, irq))
1623 continue; 1628 continue;
1624#endif 1629
1625 desc = irq_to_desc_alloc_cpu(irq, cpu); 1630 desc = irq_to_desc_alloc_cpu(irq, cpu);
1626 if (!desc) { 1631 if (!desc) {
1627 printk(KERN_INFO "can not get irq_desc for %d\n", irq); 1632 printk(KERN_INFO "can not get irq_desc for %d\n", irq);