diff options
author | Paul Mackerras <paulus@samba.org> | 2005-11-10 14:26:12 +1100 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2005-11-10 14:26:12 +1100 |
commit | 094fe2e712f38f49bf79ef93306c61b1b993b07b (patch) | |
tree | 8a01db1e3bdde65982eba66b1336c24aee329bdc /arch/powerpc/kernel/smp.c | |
parent | 0a5cab42a1317326d87b0d074df50705a0c3fa77 (diff) |
powerpc: Fixes for 32-bit powermac SMP
A couple of bugs crept in with the merge of smp.c...
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/kernel/smp.c')
-rw-r--r-- | arch/powerpc/kernel/smp.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c index 7fd530898bd..2ffdc863bff 100644 --- a/arch/powerpc/kernel/smp.c +++ b/arch/powerpc/kernel/smp.c @@ -369,11 +369,11 @@ int generic_cpu_disable(void) if (cpu == boot_cpuid) return -EBUSY; + cpu_clear(cpu, cpu_online_map); #ifdef CONFIG_PPC64 _systemcfg->processorCount--; -#endif - cpu_clear(cpu, cpu_online_map); fixup_irqs(cpu_online_map); +#endif return 0; } @@ -391,9 +391,11 @@ int generic_cpu_enable(unsigned int cpu) while (!cpu_online(cpu)) cpu_relax(); +#ifdef CONFIG_PPC64 fixup_irqs(cpu_online_map); /* counter the irq disable in fixup_irqs */ local_irq_enable(); +#endif return 0; } @@ -422,7 +424,9 @@ void generic_mach_cpu_die(void) while (__get_cpu_var(cpu_state) != CPU_UP_PREPARE) cpu_relax(); +#ifdef CONFIG_PPC64 flush_tlb_pending(); +#endif cpu_set(cpu, cpu_online_map); local_irq_enable(); } |