[MIPS] SMP: Scatter __cpuinit over the code as needed.
authorRalf Baechle <ralf@linux-mips.org>
Mon, 6 Aug 2007 13:02:12 +0000 (14:02 +0100)
committerRalf Baechle <ralf@linux-mips.org>
Mon, 27 Aug 2007 01:16:54 +0000 (02:16 +0100)
MIPS doesn't do CPU hotplugging yet but since many of the functions don't
even have an __init let's fix this right.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/smp-mt.c
arch/mips/mips-boards/malta/malta_smtc.c
arch/mips/mipssim/sim_smp.c
arch/mips/pmc-sierra/yosemite/smp.c
arch/mips/qemu/q-smp.c
arch/mips/sgi-ip27/ip27-smp.c
arch/mips/sibyte/cfe/smp.c

index 19b30d6f172785dd817b00742b05ec911a858053..05dcce416325d50d85ef1d9c20fb291e0b2f1a47 100644 (file)
@@ -287,7 +287,7 @@ void __init plat_prepare_cpus(unsigned int max_cpus)
  * (unsigned long)idle->thread_info the gp
  * assumes a 1:1 mapping of TC => VPE
  */
-void prom_boot_secondary(int cpu, struct task_struct *idle)
+void __cpuinit prom_boot_secondary(int cpu, struct task_struct *idle)
 {
        struct thread_info *gp = task_thread_info(idle);
        dvpe();
@@ -321,7 +321,7 @@ void prom_boot_secondary(int cpu, struct task_struct *idle)
        evpe(EVPE_ENABLE);
 }
 
-void prom_init_secondary(void)
+void __cpuinit prom_init_secondary(void)
 {
        /* Enable per-cpu interrupts */
 
@@ -330,7 +330,7 @@ void prom_init_secondary(void)
                        (STATUSF_IP0 | STATUSF_IP1 | STATUSF_IP6 | STATUSF_IP7));
 }
 
-void prom_smp_finish(void)
+void __cpuinit prom_smp_finish(void)
 {
        write_c0_compare(read_c0_count() + (8* mips_hpt_frequency/HZ));
 
index ea8f3bb8ed810cb6b20cd6dfb4803c8c2fcc7930..40d782d7d37ff95a7c8b8662f737dcd939936dc2 100644 (file)
@@ -24,7 +24,7 @@ void core_send_ipi(int cpu, unsigned int action)
  * Platform "CPU" startup hook
  */
 
-void prom_boot_secondary(int cpu, struct task_struct *idle)
+void __cpuinit prom_boot_secondary(int cpu, struct task_struct *idle)
 {
        smtc_boot_secondary(cpu, idle);
 }
@@ -33,7 +33,7 @@ void prom_boot_secondary(int cpu, struct task_struct *idle)
  * Post-config but pre-boot cleanup entry point
  */
 
-void prom_init_secondary(void)
+void __cpuinit prom_init_secondary(void)
 {
         void smtc_init_secondary(void);
        int myvpe;
@@ -75,7 +75,7 @@ void __init plat_prepare_cpus(unsigned int max_cpus)
  * SMP initialization finalization entry point
  */
 
-void prom_smp_finish(void)
+void __cpuinit prom_smp_finish(void)
 {
        smtc_smp_finish();
 }
index 38fa807b99f98e9d9a243db7633d5969c45a15d7..ccbbccac23efed3de16e138bf236bc6cb9f85b28 100644 (file)
@@ -53,7 +53,7 @@ void core_send_ipi(int cpu, unsigned int action)
  * Platform "CPU" startup hook
  */
 
-void prom_boot_secondary(int cpu, struct task_struct *idle)
+void __cpuinit prom_boot_secondary(int cpu, struct task_struct *idle)
 {
 #ifdef CONFIG_MIPS_MT_SMTC
        smtc_boot_secondary(cpu, idle);
@@ -64,7 +64,7 @@ void prom_boot_secondary(int cpu, struct task_struct *idle)
  * Post-config but pre-boot cleanup entry point
  */
 
-void prom_init_secondary(void)
+void __cpuinit prom_init_secondary(void)
 {
 #ifdef CONFIG_MIPS_MT_SMTC
        void smtc_init_secondary(void);
@@ -103,7 +103,7 @@ void plat_prepare_cpus(unsigned int max_cpus)
  * SMP initialization finalization entry point
  */
 
-void prom_smp_finish(void)
+void __cpuinit prom_smp_finish(void)
 {
 #ifdef CONFIG_MIPS_MT_SMTC
        smtc_smp_finish();
index 1c852d6a7654174c1462f60bc4575c8e92e362c0..b0f12cd2968ac0e08d17e2979c8a2b1d48b0a433 100644 (file)
@@ -77,7 +77,7 @@ void __init plat_prepare_cpus(unsigned int max_cpus)
  * stack so the first thing we do is throw away that stuff and load useful
  * values into the registers ...
  */
-void __init prom_boot_secondary(int cpu, struct task_struct *idle)
+void __cpuinit prom_boot_secondary(int cpu, struct task_struct *idle)
 {
        unsigned long gp = (unsigned long) task_thread_info(idle);
        unsigned long sp = __KSTK_TOS(idle);
@@ -97,12 +97,12 @@ void prom_cpus_done(void)
  *  After we've done initial boot, this function is called to allow the
  *  board code to clean up state, if needed
  */
-void prom_init_secondary(void)
+void __cpuinit prom_init_secondary(void)
 {
        set_c0_status(ST0_CO | ST0_IE | ST0_IM);
 }
 
-void prom_smp_finish(void)
+void __cpuinit prom_smp_finish(void)
 {
 }
 
index 786bbfa214d14620fd83b795f77c3ba2c13796d9..4b0178d0df0b828bfd444afc8c26812e66a462dd 100644 (file)
@@ -22,11 +22,11 @@ void core_send_ipi(int cpu, unsigned int action)
  *  After we've done initial boot, this function is called to allow the
  *  board code to clean up state, if needed
  */
-void prom_init_secondary(void)
+void __cpuinit prom_init_secondary(void)
 {
 }
 
-void prom_smp_finish(void)
+void __cpuinit prom_smp_finish(void)
 {
 }
 
@@ -43,7 +43,7 @@ void __init prom_prepare_cpus(unsigned int max_cpus)
 /*
  * Firmware CPU startup hook
  */
-void prom_boot_secondary(int cpu, struct task_struct *idle)
+void __cpuinit prom_boot_secondary(int cpu, struct task_struct *idle)
 {
 }
 
index 08e79141b47c9ecb0e2c4d9b6122dc832333022d..fbb27728a76abb164a5fa02da92aae9c5e979d1d 100644 (file)
@@ -171,7 +171,7 @@ void __init plat_prepare_cpus(unsigned int max_cpus)
  * set sp to the kernel stack of the newly created idle process, gp to the proc
  * struct so that current_thread_info() will work.
  */
-void __init prom_boot_secondary(int cpu, struct task_struct *idle)
+void __cpuinit prom_boot_secondary(int cpu, struct task_struct *idle)
 {
        unsigned long gp = (unsigned long)task_thread_info(idle);
        unsigned long sp = __KSTK_TOS(idle);
@@ -191,7 +191,7 @@ void __init prom_cpus_done(void)
 {
 }
 
-void prom_smp_finish(void)
+void __cpuinit prom_smp_finish(void)
 {
 }
 
index eab20e2db3239be2bbc80a3a86a190a4a6659ab2..5de4cff9d14ab7b26e96ee08f3af5cb0330a9039 100644 (file)
@@ -58,7 +58,7 @@ void __init plat_prepare_cpus(unsigned int max_cpus)
  * Setup the PC, SP, and GP of a secondary processor and start it
  * running!
  */
-void prom_boot_secondary(int cpu, struct task_struct *idle)
+void __cpuinit prom_boot_secondary(int cpu, struct task_struct *idle)
 {
        int retval;
 
@@ -72,7 +72,7 @@ void prom_boot_secondary(int cpu, struct task_struct *idle)
 /*
  * Code to run on secondary just after probing the CPU
  */
-void prom_init_secondary(void)
+void __cpuinit prom_init_secondary(void)
 {
 #if defined(CONFIG_SIBYTE_BCM1x55) || defined(CONFIG_SIBYTE_BCM1x80)
        extern void bcm1480_smp_init(void);
@@ -89,7 +89,7 @@ void prom_init_secondary(void)
  * Do any tidying up before marking online and running the idle
  * loop
  */
-void prom_smp_finish(void)
+void __cpuinit prom_smp_finish(void)
 {
 #if defined(CONFIG_SIBYTE_BCM1x55) || defined(CONFIG_SIBYTE_BCM1x80)
        extern void bcm1480_smp_finish(void);