]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/ia64/kernel/smpboot.c
[IA64] Fix wrong access to irq_desc[] in iosapic_register_intr().
[linux-2.6-omap-h63xx.git] / arch / ia64 / kernel / smpboot.c
index 3c9d8e6089cf9b5134bca8e86610dfe810891415..62209dcf06d3095fc403b22f3bbff96f95bdec92 100644 (file)
@@ -395,9 +395,13 @@ smp_callin (void)
        fix_b0_for_bsp();
 
        lock_ipi_calllock();
+       spin_lock(&vector_lock);
+       /* Setup the per cpu irq handling data structures */
+       __setup_vector_irq(cpuid);
        cpu_set(cpuid, cpu_online_map);
        unlock_ipi_calllock();
        per_cpu(cpu_state, cpuid) = CPU_ONLINE;
+       spin_unlock(&vector_lock);
 
        smp_setup_percpu_timer();
 
@@ -483,7 +487,7 @@ struct create_idle {
        int cpu;
 };
 
-void
+void __cpuinit
 do_fork_idle(struct work_struct *work)
 {
        struct create_idle *c_idle =
@@ -493,7 +497,7 @@ do_fork_idle(struct work_struct *work)
        complete(&c_idle->done);
 }
 
-static int __devinit
+static int __cpuinit
 do_boot_cpu (int sapicid, int cpu)
 {
        int timeout;
@@ -804,7 +808,7 @@ set_cpu_sibling_map(int cpu)
        }
 }
 
-int __devinit
+int __cpuinit
 __cpu_up (unsigned int cpu)
 {
        int ret;