mirror of
https://github.com/genesi/linux-legacy.git
synced 2026-07-08 17:56:55 +00:00
Revert "mm: keep a guard page below a grow-down stack segment"
This reverts commit dabebaedfe.
This commit is contained in:
33
mm/memory.c
33
mm/memory.c
@@ -2611,26 +2611,6 @@ out_page:
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* This is like a special single-page "expand_downwards()",
|
||||
* except we must first make sure that 'address-PAGE_SIZE'
|
||||
* doesn't hit another vma.
|
||||
*
|
||||
* The "find_vma()" will do the right thing even if we wrap
|
||||
*/
|
||||
static inline int check_stack_guard_page(struct vm_area_struct *vma, unsigned long address)
|
||||
{
|
||||
address &= PAGE_MASK;
|
||||
if ((vma->vm_flags & VM_GROWSDOWN) && address == vma->vm_start) {
|
||||
address -= PAGE_SIZE;
|
||||
if (find_vma(vma->vm_mm, address) != vma)
|
||||
return -ENOMEM;
|
||||
|
||||
expand_stack(vma, address);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* We enter with non-exclusive mmap_sem (to exclude vma changes,
|
||||
* but allow concurrent faults), and pte mapped but not yet locked.
|
||||
@@ -2644,19 +2624,6 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
|
||||
spinlock_t *ptl;
|
||||
pte_t entry;
|
||||
|
||||
if (check_stack_guard_page(vma, address) < 0)
|
||||
return VM_FAULT_SIGBUS;
|
||||
|
||||
if (!(flags & FAULT_FLAG_WRITE)) {
|
||||
entry = pte_mkspecial(pfn_pte(my_zero_pfn(address),
|
||||
vma->vm_page_prot));
|
||||
ptl = pte_lockptr(mm, pmd);
|
||||
spin_lock(ptl);
|
||||
if (!pte_none(*page_table))
|
||||
goto unlock;
|
||||
goto setpte;
|
||||
}
|
||||
|
||||
/* Allocate our own private page. */
|
||||
pte_unmap(page_table);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user