int i;  
void __init smp_prepare_cpus(unsigned int max_cpus){	int i;	nmi_watchdog_default();	current_cpu_data = boot_cpu_data;	current_thread_info()->cpu = 0;  /* needed? */	enforce_max_cpus(max_cpus);	/*	 * Fill in cpu_present_mask	 */	for (i = 0; i < NR_CPUS; i++) {		int apicid = cpu_present_to_apicid(i);		if (physid_isset(apicid, phys_cpu_present_map)) {			cpu_set(i, cpu_present_map);			cpu_set(i, cpu_possible_map);		}		fixup_cpu_possible_map(i);	}	if (smp_sanity_check(max_cpus) < 0) {		printk(KERN_INFO "SMP disabled\n");		disable_smp();		return;	}	/*	 * Switch from PIC to APIC mode.	 */	connect_bsp_APIC();	setup_local_APIC();	if (GET_APIC_ID(apic_read(APIC_ID)) != boot_cpu_id) {		panic("Boot APIC ID in local APIC unexpected (%d vs %d)",		      GET_APIC_ID(apic_read(APIC_ID)), boot_cpu_id);		/* Or can we switch back to PIC here? */	}	/*	 * Now start the IO-APICs	 */	if (!skip_ioapic_setup && nr_ioapics)		setup_IO_APIC();	else		nr_ioapics = 0;	/*	 * Set up local APIC timer on boot CPU.	 */	setup_boot_APIC_clock();}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/61b1b2d0239da82c0bed8adaa1d070c6551d4afd/smpboot.c/buggy/arch/x86_64/kernel/smpboot.c