unsigned long address; pte_t *ptep; pte_t pte; struct page *page; 
void unmap_hugepage_range(struct vm_area_struct *vma, unsigned long start,			  unsigned long end){	struct mm_struct *mm = vma->vm_mm;	unsigned long address;	pte_t *ptep;	pte_t pte;	struct page *page;	WARN_ON(!is_vm_hugetlb_page(vma));	BUG_ON(start & ~HPAGE_MASK);	BUG_ON(end & ~HPAGE_MASK);	for (address = start; address < end; address += HPAGE_SIZE) {		ptep = huge_pte_offset(mm, address);		if (! ptep)			/* This can happen on truncate, or if an			 * mmap() is aborted due to an error before			 * the prefault */			continue;		pte = huge_ptep_get_and_clear(mm, address, ptep);		if (pte_none(pte))			continue;		page = pte_page(pte);		put_page(page);		add_mm_counter(mm, rss,  - (HPAGE_SIZE / PAGE_SIZE));	}	flush_tlb_range(vma, start, end);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/ac9b9c667c2e1194e22ebe0a441ae1c37aaa9b90/hugetlb.c/clean/mm/hugetlb.c