for (segmask = LOW_ESID_MASK(0x100000000UL-len, len); ! lastshift; segmask >>=1) { if (segmask & 1) 
lastshift = 0; for (areamask = LOW_ESID_MASK(0x100000000UL-len, len); ! lastshift; areamask >>=1) { if (areamask & 1) 
unsigned long hugetlb_get_unmapped_area(struct file *file, unsigned long addr,					unsigned long len, unsigned long pgoff,					unsigned long flags){	if (len & ~HPAGE_MASK)		return -EINVAL;	if (!cpu_has_feature(CPU_FTR_16M_PAGE))		return -EINVAL;	if (test_thread_flag(TIF_32BIT)) {		int lastshift = 0;		u16 segmask, cursegs = current->mm->context.htlb_segs;		/* First see if we can do the mapping in the existing		 * low hpage segments */		addr = htlb_get_low_area(len, cursegs);		if (addr != -ENOMEM)			return addr;		for (segmask = LOW_ESID_MASK(0x100000000UL-len, len);		     ! lastshift; segmask >>=1) {			if (segmask & 1)				lastshift = 1;			addr = htlb_get_low_area(len, cursegs | segmask);			if ((addr != -ENOMEM)			    && open_low_hpage_segs(current->mm, segmask) == 0)				return addr;		}		printk(KERN_DEBUG "hugetlb_get_unmapped_area() unable to open"		       " enough segments\n");		return -ENOMEM;	} else {		return htlb_get_high_area(len);	}}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/c594adad5653491813959277fb87a2fef54c4e05/hugetlbpage.c/clean/arch/ppc64/mm/hugetlbpage.c