pte_unmap and do_anonymous_page
Posted: Fri Dec 10, 2010 4:22 pm
I was looking over the PaX patch (thanks PaX Team!) and found something I had a question about. Most likely it is just due to my unfamiliarity with the code, but wanted to ask anyhow.
The specified semantics for do_anonymous_page (mm/memory.c) state that entry is with the PTE mapped but exit with it unmapped. Granted, with many architectures this is a moot point, but in the PaX patched version the code path through if (!(flags & FAULT_FLAG_WRITE)) appears to leave the PTE mapped on exit.
Also, PaX removes the check_stack_guard_page() function. Is this because PaX ensures a guard page via the expand_* functions?
The specified semantics for do_anonymous_page (mm/memory.c) state that entry is with the PTE mapped but exit with it unmapped. Granted, with many architectures this is a moot point, but in the PaX patched version the code path through if (!(flags & FAULT_FLAG_WRITE)) appears to leave the PTE mapped on exit.
Also, PaX removes the check_stack_guard_page() function. Is this because PaX ensures a guard page via the expand_* functions?