[PATCH] ppc32: remove secondary_ti

Milton Miller miltonm at bga.com
Mon Nov 17 08:43:45 EST 2008


Instead of copying current_set[cpu] to secondary_ti, directly index into
current_set by the cpu number like head_64.S.  In addition to removing
the variable, a slow to respond cpu will not clobber another cpus
stack.

---
grep found no other reference in arch/powerpc.   compile tested but I have
no 32bit smp hardware.

Index: next.git/arch/powerpc/kernel/head_32.S
===================================================================
--- next.git.orig/arch/powerpc/kernel/head_32.S	2008-11-16 01:36:45.000000000 -0600
+++ next.git/arch/powerpc/kernel/head_32.S	2008-11-16 01:42:02.000000000 -0600
@@ -906,10 +906,11 @@ __secondary_start:
 	bl	init_idle_6xx
 #endif /* CONFIG_6xx */
 
-	/* get current_thread_info and current */
-	lis	r1,secondary_ti at ha
+	/* get current_thread_info (current_set[cpu]) and current =  */
+	slwi	r1,r24,2
+	addis	r1,r1,current_set at ha
 	tophys(r1,r1)
-	lwz	r1,secondary_ti at l(r1)
+	lwz	r1,current_set at l(r1)
 	tophys(r2,r1)
 	lwz	r2,TI_TASK(r2)
 
Index: next.git/arch/powerpc/kernel/smp.c
===================================================================
--- next.git.orig/arch/powerpc/kernel/smp.c	2008-11-16 01:36:05.000000000 -0600
+++ next.git/arch/powerpc/kernel/smp.c	2008-11-16 01:36:22.000000000 -0600
@@ -58,7 +58,6 @@
 #endif
 
 int smp_hw_index[NR_CPUS];
-struct thread_info *secondary_ti;
 
 cpumask_t cpu_possible_map = CPU_MASK_NONE;
 cpumask_t cpu_online_map = CPU_MASK_NONE;
@@ -320,7 +319,6 @@ int __cpuinit __cpu_up(unsigned int cpu)
 {
 	int c;
 
-	secondary_ti = current_set[cpu];
 	if (!cpu_enable(cpu))
 		return 0;
 




More information about the Linuxppc-dev mailing list