diff options
Diffstat (limited to 'arch/sparc/mm/hugetlbpage.c')
| -rw-r--r-- | arch/sparc/mm/hugetlbpage.c | 21 | 
1 files changed, 3 insertions, 18 deletions
diff --git a/arch/sparc/mm/hugetlbpage.c b/arch/sparc/mm/hugetlbpage.c index b432500c13a5..cc91ca7a1e18 100644 --- a/arch/sparc/mm/hugetlbpage.c +++ b/arch/sparc/mm/hugetlbpage.c @@ -31,17 +31,15 @@ static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *filp,  {  	struct hstate *h = hstate_file(filp);  	unsigned long task_size = TASK_SIZE; -	struct vm_unmapped_area_info info; +	struct vm_unmapped_area_info info = {};  	if (test_thread_flag(TIF_32BIT))  		task_size = STACK_TOP32; -	info.flags = 0;  	info.length = len;  	info.low_limit = TASK_UNMAPPED_BASE;  	info.high_limit = min(task_size, VA_EXCLUDE_START);  	info.align_mask = PAGE_MASK & ~huge_page_mask(h); -	info.align_offset = 0;  	addr = vm_unmapped_area(&info);  	if ((addr & ~PAGE_MASK) && task_size > VA_EXCLUDE_END) { @@ -63,7 +61,7 @@ hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,  	struct hstate *h = hstate_file(filp);  	struct mm_struct *mm = current->mm;  	unsigned long addr = addr0; -	struct vm_unmapped_area_info info; +	struct vm_unmapped_area_info info = {};  	/* This should only ever run for 32-bit processes.  */  	BUG_ON(!test_thread_flag(TIF_32BIT)); @@ -73,7 +71,6 @@ hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,  	info.low_limit = PAGE_SIZE;  	info.high_limit = mm->mmap_base;  	info.align_mask = PAGE_MASK & ~huge_page_mask(h); -	info.align_offset = 0;  	addr = vm_unmapped_area(&info);  	/* @@ -123,7 +120,7 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,  		    (!vma || addr + len <= vm_start_gap(vma)))  			return addr;  	} -	if (mm->get_unmapped_area == arch_get_unmapped_area) +	if (!test_bit(MMF_TOPDOWN, &mm->flags))  		return hugetlb_get_unmapped_area_bottomup(file, addr, len,  				pgoff, flags);  	else @@ -407,18 +404,6 @@ pte_t huge_ptep_get_and_clear(struct mm_struct *mm, unsigned long addr,  	return entry;  } -int pmd_huge(pmd_t pmd) -{ -	return !pmd_none(pmd) && -		(pmd_val(pmd) & (_PAGE_VALID|_PAGE_PMD_HUGE)) != _PAGE_VALID; -} - -int pud_huge(pud_t pud) -{ -	return !pud_none(pud) && -		(pud_val(pud) & (_PAGE_VALID|_PAGE_PUD_HUGE)) != _PAGE_VALID; -} -  static void hugetlb_free_pte_range(struct mmu_gather *tlb, pmd_t *pmd,  			   unsigned long addr)  {  |