|
@@ -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
|