memcpy(&per_cpu(cpu_gdt_table, cpu), cpu_gdt_table, GDT_SIZE); 
memcpy(gdt, cpu_gdt_table, GDT_SIZE); 
void __devinit cpu_init(void){	int cpu = smp_processor_id();	struct tss_struct * t = &per_cpu(init_tss, cpu);	struct thread_struct *thread = &current->thread;	__u32 stk16_off = (__u32)&per_cpu(cpu_16bit_stack, cpu);	if (cpu_test_and_set(cpu, cpu_initialized)) {		printk(KERN_WARNING "CPU#%d already initialized!\n", cpu);		for (;;) local_irq_enable();	}	printk(KERN_INFO "Initializing CPU#%d\n", cpu);	if (cpu_has_vme || cpu_has_tsc || cpu_has_de)		clear_in_cr4(X86_CR4_VME|X86_CR4_PVI|X86_CR4_TSD|X86_CR4_DE);	if (tsc_disable && cpu_has_tsc) {		printk(KERN_NOTICE "Disabling TSC...\n");		/**** FIX-HPA: DOES THIS REALLY BELONG HERE? ****/		clear_bit(X86_FEATURE_TSC, boot_cpu_data.x86_capability);		set_in_cr4(X86_CR4_TSD);	}	/*	 * Initialize the per-CPU GDT with the boot GDT,	 * and set up the GDT descriptor:	 */	memcpy(&per_cpu(cpu_gdt_table, cpu), cpu_gdt_table,	       GDT_SIZE);	/* Set up GDT entry for 16bit stack */	*(__u64 *)&(per_cpu(cpu_gdt_table, cpu)[GDT_ENTRY_ESPFIX_SS]) |=		((((__u64)stk16_off) << 16) & 0x000000ffffff0000ULL) |		((((__u64)stk16_off) << 32) & 0xff00000000000000ULL) |		(CPU_16BIT_STACK_SIZE - 1);	cpu_gdt_descr[cpu].size = GDT_SIZE - 1;	cpu_gdt_descr[cpu].address =	    (unsigned long)&per_cpu(cpu_gdt_table, cpu);	load_gdt(&cpu_gdt_descr[cpu]);	load_idt(&idt_descr);	/*	 * Delete NT	 */	__asm__("pushfl ; andl $0xffffbfff,(%esp) ; popfl");	/*	 * Set up and load the per-CPU TSS and LDT	 */	atomic_inc(&init_mm.mm_count);	current->active_mm = &init_mm;	if (current->mm)		BUG();	enter_lazy_tlb(&init_mm, current);	load_esp0(t, thread);	set_tss_desc(cpu,t);	load_TR_desc();	load_LDT(&init_mm.context);	/* Set up doublefault TSS pointer in the GDT */	__set_tss_desc(cpu, GDT_ENTRY_DOUBLEFAULT_TSS, &doublefault_tss);	/* Clear %fs and %gs. */	asm volatile ("xorl %eax, %eax; movl %eax, %fs; movl %eax, %gs");	/* Clear all 6 debug registers: */	set_debugreg(0, 0);	set_debugreg(0, 1);	set_debugreg(0, 2);	set_debugreg(0, 3);	set_debugreg(0, 6);	set_debugreg(0, 7);	/*	 * Force FPU initialization:	 */	current_thread_info()->status = 0;	clear_used_math();	mxcsr_feature_mask_init();}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/251e6912df43df54570ed68aade703b329c6cd5b/common.c/clean/arch/i386/kernel/cpu/common.c