Revert to Fedora kernel-2.6.17-1.2187_FC5 patched with vs2.0.2.1; there are too many...
[linux-2.6.git] / arch / sparc / kernel / sun4m_smp.c
index 7d4a649..70b375a 100644 (file)
@@ -39,6 +39,7 @@ extern ctxd_t *srmmu_ctx_table_phys;
 
 extern void calibrate_delay(void);
 
+extern volatile int smp_processors_ready;
 extern volatile unsigned long cpu_callin_map[NR_CPUS];
 extern unsigned char boot_cpu_id;
 
@@ -65,7 +66,7 @@ static inline unsigned long swap(volatile unsigned long *ptr, unsigned long val)
 static void smp_setup_percpu_timer(void);
 extern void cpu_probe(void);
 
-void __cpuinit smp4m_callin(void)
+void __init smp4m_callin(void)
 {
        int cpuid = hard_smp_processor_id();
 
@@ -111,8 +112,13 @@ void __cpuinit smp4m_callin(void)
        local_irq_enable();
 
        cpu_set(cpuid, cpu_online_map);
+       /* last one in gets all the interrupts (for testing) */
+       set_irq_udt(boot_cpu_id);
 }
 
+extern void init_IRQ(void);
+extern void cpu_panic(void);
+
 /*
  *     Cycle through the processors asking the PROM to start each one.
  */
@@ -128,7 +134,7 @@ void __init smp4m_boot_cpus(void)
        local_flush_cache_all();
 }
 
-int __cpuinit smp4m_boot_one_cpu(int i)
+int smp4m_boot_one_cpu(int i)
 {
        extern unsigned long sun4m_cpu_startup;
        unsigned long *entry = &sun4m_cpu_startup;
@@ -216,6 +222,7 @@ void __init smp4m_smp_done(void)
        }
 
        /* Ok, they are spinning and ready to go. */
+       smp_processors_ready = 1;
 }
 
 /* At each hardware IRQ, we get this called to forward IRQ reception