From: Zwane Mwaikambo <zwane@fsmlabs.com>

I seem to have broken this when I moved the clearing of the dying cpu to 
arch specific code.

Signed-off-by: Zwane Mwaikambo <zwane@fsmlabs.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/arch/ppc64/kernel/pSeries_smp.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletion(-)

diff -puN arch/ppc64/kernel/pSeries_smp.c~ppc64-fix-cpu-hotplug arch/ppc64/kernel/pSeries_smp.c
--- 25/arch/ppc64/kernel/pSeries_smp.c~ppc64-fix-cpu-hotplug	Mon Dec 20 14:28:20 2004
+++ 25-akpm/arch/ppc64/kernel/pSeries_smp.c	Mon Dec 20 14:28:20 2004
@@ -92,11 +92,13 @@ int __cpu_disable(void)
 {
 	/* FIXME: go put this in a header somewhere */
 	extern void xics_migrate_irqs_away(void);
+	int cpu = smp_processor_id();
 
+	cpu_clear(cpu, cpu_online_map);
 	systemcfg->processorCount--;
 
 	/*fix boot_cpuid here*/
-	if (smp_processor_id() == boot_cpuid)
+	if (cpu == boot_cpuid)
 		boot_cpuid = any_online_cpu(cpu_online_map);
 
 	/* FIXME: abstract this to not be platform specific later on */
_