/* setup entry point of secondary processor */ switch (nr) { case 2: start = __secondary_start_psurge2; break; case 3: start = __secondary_start_psurge3; break; }  out_be32(psurge_start, __pa(start)); 
out_be32(psurge_start, start); 
static void __init smp_psurge_kick_cpu(int nr){	void (*start)(void) = __secondary_start_psurge;	unsigned long a;	/* may need to flush here if secondary bats aren't setup */	for (a = KERNELBASE; a < KERNELBASE + 0x800000; a += 32)		asm volatile("dcbf 0,%0" : : "r" (a) : "memory");	asm volatile("sync");	if (ppc_md.progress) ppc_md.progress("smp_psurge_kick_cpu", 0x353);	/* setup entry point of secondary processor */	switch (nr) {	case 2:		start = __secondary_start_psurge2;		break;	case 3:		start = __secondary_start_psurge3;		break;	}	out_be32(psurge_start, __pa(start));	mb();	psurge_set_ipi(nr);	udelay(10);	psurge_clr_ipi(nr);	if (ppc_md.progress) ppc_md.progress("smp_psurge_kick_cpu - done", 0x354);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/31139971b3dc9fbb2e8a8572fb81e6e8470f363a/pmac_smp.c/buggy/arch/ppc/platforms/pmac_smp.c