Skip to content

Commit

Permalink
[MIPS] SMP: Scatter __cpuinit over the code as needed.
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Ralf Baechle committed Aug 27, 2007
1 parent d98cc84 commit 428ab28
Show file tree
Hide file tree
Showing 7 changed files with 20 additions and 20 deletions.
6 changes: 3 additions & 3 deletions arch/mips/kernel/smp-mt.c
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down Expand Up @@ -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 */

Expand All @@ -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));

Expand Down
6 changes: 3 additions & 3 deletions arch/mips/mips-boards/malta/malta_smtc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand All @@ -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;
Expand Down Expand Up @@ -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();
}
Expand Down
6 changes: 3 additions & 3 deletions arch/mips/mipssim/sim_smp.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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);
Expand Down Expand Up @@ -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();
Expand Down
6 changes: 3 additions & 3 deletions arch/mips/pmc-sierra/yosemite/smp.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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)
{
}

Expand Down
6 changes: 3 additions & 3 deletions arch/mips/qemu/q-smp.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
}

Expand All @@ -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)
{
}

Expand Down
4 changes: 2 additions & 2 deletions arch/mips/sgi-ip27/ip27-smp.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -191,7 +191,7 @@ void __init prom_cpus_done(void)
{
}

void prom_smp_finish(void)
void __cpuinit prom_smp_finish(void)
{
}

Expand Down
6 changes: 3 additions & 3 deletions arch/mips/sibyte/cfe/smp.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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);
Expand All @@ -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);
Expand Down

0 comments on commit 428ab28

Please sign in to comment.