static void unmap_page_range(struct mmu_gather *tlb, struct vm_area_struct *vma,
static unsigned long unmap_page_range(struct mmu_gather *tlb, struct vm_area_struct *vma,
static void unmap_page_range(struct mmu_gather *tlb, struct vm_area_struct *vma,				unsigned long addr, unsigned long end,				struct zap_details *details){	pgd_t *pgd;	unsigned long next;	if (details && !details->check_mapping && !details->nonlinear_vma)		details = NULL;	BUG_ON(addr >= end);	tlb_start_vma(tlb, vma);	pgd = pgd_offset(vma->vm_mm, addr);	do {		next = pgd_addr_end(addr, end);		if (pgd_none_or_clear_bad(pgd))			continue;		zap_pud_range(tlb, vma, pgd, addr, next, details);	} while (pgd++, addr = next, addr != end);	tlb_end_vma(tlb, vma);}