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

Reply via email to