 #ifdef CONFIG_HUGETLB_PAGE /* We leave htlb_segs as it was, but for a fork, we need to * clear the huge_pgdir. */ mm->context.huge_pgdir = NULL; #endif 
int init_new_context(struct task_struct *tsk, struct mm_struct *mm){	int index;	int err;#ifdef CONFIG_HUGETLB_PAGE	/* We leave htlb_segs as it was, but for a fork, we need to	 * clear the huge_pgdir. */	mm->context.huge_pgdir = NULL;#endifagain:	if (!idr_pre_get(&mmu_context_idr, GFP_KERNEL))		return -ENOMEM;	spin_lock(&mmu_context_lock);	err = idr_get_new_above(&mmu_context_idr, NULL, 1, &index);	spin_unlock(&mmu_context_lock);	if (err == -EAGAIN)		goto again;	else if (err)		return err;	if (index > MAX_CONTEXT) {		idr_remove(&mmu_context_idr, index);		return -ENOMEM;	}	mm->context.id = index;	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/e28f7faf05159f1cfd564596f5e6178edba6bd49/init.c/clean/arch/ppc64/mm/init.c