]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - arch/x86/kernel/irqinit.c
x86: Handle legacy PIC interrupts on all the cpu's
[net-next-2.6.git] / arch / x86 / kernel / irqinit.c
index ef257fc2921b1a0ed133493d53186e3b064e2529..f01d390f9c5be3dde9e1dcacb43bce8c2ba3f09b 100644 (file)
@@ -141,6 +141,28 @@ void __init init_IRQ(void)
        x86_init.irqs.intr_init();
 }
 
+/*
+ * Setup the vector to irq mappings.
+ */
+void setup_vector_irq(int cpu)
+{
+#ifndef CONFIG_X86_IO_APIC
+       int irq;
+
+       /*
+        * On most of the platforms, legacy PIC delivers the interrupts on the
+        * boot cpu. But there are certain platforms where PIC interrupts are
+        * delivered to multiple cpu's. If the legacy IRQ is handled by the
+        * legacy PIC, for the new cpu that is coming online, setup the static
+        * legacy vector to irq mapping:
+        */
+       for (irq = 0; irq < legacy_pic->nr_legacy_irqs; irq++)
+               per_cpu(vector_irq, cpu)[IRQ0_VECTOR + irq] = irq;
+#endif
+
+       __setup_vector_irq(cpu);
+}
+
 static void __init smp_intr_init(void)
 {
 #ifdef CONFIG_SMP