From 89bbe8d13731e2bdadd8f8ce1a8597e0d031f14f Mon Sep 17 00:00:00 2001 From: Adam Litke Date: Tue, 30 Jan 2007 14:35:39 -0800 Subject: [PATCH] --- yaml --- r: 45992 b: refs/heads/master c: 0d59a01bc461bbab4017ff449b8401151ef44cf6 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/mm/mmap.c | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 6e9b057353f6..5494efea5b00 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bcdddfb66cc998252d34758ce4109cedc0d24a5c +refs/heads/master: 0d59a01bc461bbab4017ff449b8401151ef44cf6 diff --git a/trunk/mm/mmap.c b/trunk/mm/mmap.c index 9717337293c3..cc3a20819457 100644 --- a/trunk/mm/mmap.c +++ b/trunk/mm/mmap.c @@ -1477,6 +1477,7 @@ static int acct_stack_growth(struct vm_area_struct * vma, unsigned long size, un { struct mm_struct *mm = vma->vm_mm; struct rlimit *rlim = current->signal->rlim; + unsigned long new_start; /* address space limit tests */ if (!may_expand_vm(mm, grow)) @@ -1496,6 +1497,12 @@ static int acct_stack_growth(struct vm_area_struct * vma, unsigned long size, un return -ENOMEM; } + /* Check to ensure the stack will not grow into a hugetlb-only region */ + new_start = (vma->vm_flags & VM_GROWSUP) ? vma->vm_start : + vma->vm_end - size; + if (is_hugepage_only_range(vma->vm_mm, new_start, size)) + return -EFAULT; + /* * Overcommit.. This must be the final test, as it will * update security statistics.