asm volatile("movq %0,%%cr3" :: "r" (__pa_symbol(&init_level4_pgt))); 
void pda_init(int cpu){ 	struct x8664_pda *pda = &cpu_pda[cpu];	/* Setup up data that may be needed in __get_free_pages early */	asm volatile("movl %0,%%fs ; movl %0,%%gs" :: "r" (0)); 	wrmsrl(MSR_GS_BASE, cpu_pda + cpu);	pda->cpunumber = cpu; 	pda->irqcount = -1;	pda->kernelstack = 		(unsigned long)stack_thread_info() - PDA_STACKOFFSET + THREAD_SIZE; 	pda->active_mm = &init_mm;	pda->mmu_state = 0;	if (cpu == 0) {		/* others are initialized in smpboot.c */		pda->pcurrent = &init_task;		pda->irqstackptr = boot_cpu_stack; 	} else {		pda->irqstackptr = (char *)			__get_free_pages(GFP_ATOMIC, IRQSTACK_ORDER);		if (!pda->irqstackptr)			panic("cannot allocate irqstack for cpu %d", cpu); 	}	asm volatile("movq %0,%%cr3" :: "r" (__pa_symbol(&init_level4_pgt)));	pda->irqstackptr += IRQSTACKSIZE-64;} 
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/f6c2e3330d3fdd5474bc3756da46fca889a30e33/setup64.c/buggy/arch/x86_64/kernel/setup64.c