diff options
author | Paul Mackerras <paulus@samba.org> | 2005-10-22 15:55:58 +1000 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2005-10-22 15:55:58 +1000 |
commit | ef1a12817aebc313049d226f96eee86e4bcc94a3 (patch) | |
tree | 9c20807e70ef93a3e709e38464b627280bf67b36 /arch/ppc64/kernel/pmac_smp.c | |
parent | 529294d59fdc77bf15f00f2308bbeb73e03e7042 (diff) |
ppc64: Simplify secondary CPU startup on powermacs
... for consistency with ppc32, and because this way is neater.
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/ppc64/kernel/pmac_smp.c')
-rw-r--r-- | arch/ppc64/kernel/pmac_smp.c | 21 |
1 files changed, 4 insertions, 17 deletions
diff --git a/arch/ppc64/kernel/pmac_smp.c b/arch/ppc64/kernel/pmac_smp.c index 3a1683f5b07f..83c2f8dc1ec6 100644 --- a/arch/ppc64/kernel/pmac_smp.c +++ b/arch/ppc64/kernel/pmac_smp.c @@ -59,9 +59,7 @@ #define DBG(fmt...) #endif -extern void pmac_secondary_start_1(void); -extern void pmac_secondary_start_2(void); -extern void pmac_secondary_start_3(void); +extern void __secondary_start_pmac_0(void); extern struct smp_ops_t *smp_ops; @@ -236,7 +234,7 @@ static int __init smp_core99_probe(void) static void __init smp_core99_kick_cpu(int nr) { - int save_vector, j; + unsigned int save_vector, j; unsigned long new_vector; unsigned long flags; volatile unsigned int *vector @@ -253,20 +251,9 @@ static void __init smp_core99_kick_cpu(int nr) save_vector = *vector; /* Setup fake reset vector that does - * b .pmac_secondary_start - KERNELBASE + * b __secondary_start_pmac_0 + nr*8 - KERNELBASE */ - switch(nr) { - case 1: - new_vector = (unsigned long)pmac_secondary_start_1; - break; - case 2: - new_vector = (unsigned long)pmac_secondary_start_2; - break; - case 3: - default: - new_vector = (unsigned long)pmac_secondary_start_3; - break; - } + new_vector = (unsigned long) __secondary_start_pmac_0 + nr * 8; *vector = 0x48000002 + (new_vector - KERNELBASE); /* flush data cache and inval instruction cache */ |