if (HPAGE_SHIFT == 0) return -EINVAL; 
unsigned long hugetlb_get_unmapped_area(struct file *file, unsigned long addr,					unsigned long len, unsigned long pgoff,					unsigned long flags){	int lastshift;	u16 areamask, curareas;	if (len & ~HPAGE_MASK)		return -EINVAL;	if (!cpu_has_feature(CPU_FTR_16M_PAGE))		return -EINVAL;	if (test_thread_flag(TIF_32BIT)) {		curareas = current->mm->context.low_htlb_areas;		/* First see if we can do the mapping in the existing		 * low areas */		addr = htlb_get_low_area(len, curareas);		if (addr != -ENOMEM)			return addr;		lastshift = 0;		for (areamask = LOW_ESID_MASK(0x100000000UL-len, len);		     ! lastshift; areamask >>=1) {			if (areamask & 1)				lastshift = 1;			addr = htlb_get_low_area(len, curareas | areamask);			if ((addr != -ENOMEM)			    && open_low_hpage_areas(current->mm, areamask) == 0)				return addr;		}	} else {		curareas = current->mm->context.high_htlb_areas;		/* First see if we can do the mapping in the existing		 * high areas */		addr = htlb_get_high_area(len, curareas);		if (addr != -ENOMEM)			return addr;		lastshift = 0;		for (areamask = HTLB_AREA_MASK(TASK_SIZE_USER64-len, len);		     ! lastshift; areamask >>=1) {			if (areamask & 1)				lastshift = 1;			addr = htlb_get_high_area(len, curareas | areamask);			if ((addr != -ENOMEM)			    && open_high_hpage_areas(current->mm, areamask) == 0)				return addr;		}	}	printk(KERN_DEBUG "hugetlb_get_unmapped_area() unable to open"	       " enough areas\n");	return -ENOMEM;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/3c726f8dee6f55e96475574e9f645327e461884c/hugetlbpage.c/clean/arch/powerpc/mm/hugetlbpage.c