per_cpu(cpu_state, cpu) = CPU_UP_PREPARE; 
int __cpuinit __cpu_up(unsigned int cpu){	int err;	int apicid = cpu_present_to_apicid(cpu);	WARN_ON(irqs_disabled());	Dprintk("++++++++++++++++++++=_---CPU UP  %u\n", cpu);	if (apicid == BAD_APICID || apicid == boot_cpu_id ||	    !physid_isset(apicid, phys_cpu_present_map)) {		printk("__cpu_up: bad cpu %d\n", cpu);		return -EINVAL;	}	/*	 * Already booted CPU?	 */ 	if (cpu_isset(cpu, cpu_callin_map)) {		Dprintk("do_boot_cpu %d Already started\n", cpu); 		return -ENOSYS;	}	/* Boot it! */	err = do_boot_cpu(cpu, apicid);	if (err < 0) {		Dprintk("do_boot_cpu failed %d\n", err);		return err;	}	/* Unleash the CPU! */	Dprintk("waiting for cpu %d\n", cpu);	while (!cpu_isset(cpu, cpu_online_map))		cpu_relax();	err = 0;	return err;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/884d9e40b4089014f40c49e86ac6505842db2b53/smpboot.c/buggy/arch/x86_64/kernel/smpboot.c