On Mon, Jul 11, 2016 at 06:12:30PM +0800, Xishi Qiu wrote: > Hi, > > We can use mprotect to set read only or read/write. > > mprotect_fixup() > vma_set_page_prot() > vm_pgprot_modify() > vm_get_page_prot() > protection_map[vm_flags & > (VM_READ|VM_WRITE|VM_EXEC|VM_SHARED)] > > The following code shows that prots from __P001(PROT_READ) and > __P010(PROT_WRITE) > are the same, so how does it distinguish read only or read/write from > mprotect?
It doesn't. Write protection will be removed by fault handler on next write access to the page. Somewhat suboptiomal, but zero page implemenation relies on this to work properly. -- Kirill A. Shutemov

