From: Seth Rohit Date: Fri, 27 Sep 2002 11:25:44 +0000 (-0700) Subject: [PATCH] ia64: protect hugepage-check with mmap_sem X-Git-Tag: lia64-v2.5.39~4 X-Git-Url: http://git.neil.brown.name/?a=commitdiff_plain;h=34f4843b7d2816f704cd5e86ac96f7dbc17311a4;p=history.git [PATCH] ia64: protect hugepage-check with mmap_sem --- diff --git a/arch/ia64/kernel/sys_ia64.c b/arch/ia64/kernel/sys_ia64.c index 3a906efaf25b..c408cac5c3c3 100644 --- a/arch/ia64/kernel/sys_ia64.c +++ b/arch/ia64/kernel/sys_ia64.c @@ -282,18 +282,20 @@ sys_free_hugepages (unsigned long addr) extern int free_hugepages(struct vm_area_struct *); int retval; - vma = find_vma(mm, addr); - if (!vma || !is_vm_hugetlb_page(vma) || (vma->vm_start != addr)) - return -EINVAL; - down_write(&mm->mmap_sem); { + vma = find_vma(mm, addr); + if (!vma || !is_vm_hugetlb_page(vma) || (vma->vm_start != addr)) + retval = -EINVAL; + goto out; + spin_lock(&mm->page_table_lock); { retval = free_hugepages(vma); } spin_unlock(&mm->page_table_lock); } +out: up_write(&mm->mmap_sem); return retval; }