set_brendez_area(cpu); 
do_boot_cpu (int sapicid, int cpu){	int timeout;	struct create_idle c_idle = {		.cpu	= cpu,		.done	= COMPLETION_INITIALIZER(c_idle.done),	};	DECLARE_WORK(work, do_fork_idle, &c_idle);	/*	 * We can't use kernel_thread since we must avoid to reschedule the child.	 */	if (!keventd_up() || current_is_keventd())		work.func(work.data);	else {		schedule_work(&work);		wait_for_completion(&c_idle.done);	}	if (IS_ERR(c_idle.idle))		panic("failed fork for CPU %d", cpu);	task_for_booting_cpu = c_idle.idle;	Dprintk("Sending wakeup vector %lu to AP 0x%x/0x%x.\n", ap_wakeup_vector, cpu, sapicid);	platform_send_ipi(cpu, ap_wakeup_vector, IA64_IPI_DM_INT, 0);	/*	 * Wait 10s total for the AP to start	 */	Dprintk("Waiting on callin_map ...");	for (timeout = 0; timeout < 100000; timeout++) {		if (cpu_isset(cpu, cpu_callin_map))			break;  /* It has booted */		udelay(100);	}	Dprintk("\n");	if (!cpu_isset(cpu, cpu_callin_map)) {		printk(KERN_ERR "Processor 0x%x/0x%x is stuck.\n", cpu, sapicid);		ia64_cpu_to_sapicid[cpu] = -1;		cpu_clear(cpu, cpu_online_map);  /* was set in smp_callin() */		return -EINVAL;	}	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/b8d8b883e6f029e99c35c88f853501740e322131/smpboot.c/clean/arch/ia64/kernel/smpboot.c