Commit 5528f913 authored by Linus Torvalds's avatar Linus Torvalds

mm: fix missing page table unmap for stack guard page failure case

.. which didn't show up in my tests because it's a no-op on x86-64 and
most other architectures.  But we enter the function with the last-level
page table mapped, and should unmap it at exit.
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 320b2b8d
...@@ -2792,8 +2792,10 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma, ...@@ -2792,8 +2792,10 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
spinlock_t *ptl; spinlock_t *ptl;
pte_t entry; pte_t entry;
if (check_stack_guard_page(vma, address) < 0) if (check_stack_guard_page(vma, address) < 0) {
pte_unmap(page_table);
return VM_FAULT_SIGBUS; return VM_FAULT_SIGBUS;
}
if (!(flags & FAULT_FLAG_WRITE)) { if (!(flags & FAULT_FLAG_WRITE)) {
entry = pte_mkspecial(pfn_pte(my_zero_pfn(address), entry = pte_mkspecial(pfn_pte(my_zero_pfn(address),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment