Skip to content

Commit

Permalink
[PATCH] mm: anon is already wrprotected
Browse files Browse the repository at this point in the history
do_anonymous_page's pte_wrprotect causes some confusion: in such a case,
vm_page_prot must already be forcing COW, so must omit write permission, and
so the pte_wrprotect is redundant.  Replace it by a comment to that effect,
and reword the comment on unuse_pte which also caused confusion.

Signed-off-by: Hugh Dickins <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
Hugh Dickins authored and Linus Torvalds committed Oct 30, 2005
1 parent 6237bcd commit 72866f6
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 7 deletions.
7 changes: 4 additions & 3 deletions mm/memory.c
Original file line number Diff line number Diff line change
Expand Up @@ -1768,13 +1768,14 @@ do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
unsigned long addr)
{
pte_t entry;
struct page * page = ZERO_PAGE(addr);

/* Read-only mapping of ZERO_PAGE. */
entry = pte_wrprotect(mk_pte(ZERO_PAGE(addr), vma->vm_page_prot));
/* Mapping of ZERO_PAGE - vm_page_prot is readonly */
entry = mk_pte(ZERO_PAGE(addr), vma->vm_page_prot);

/* ..except if it's a write access */
if (write_access) {
struct page *page;

/* Allocate our own private page. */
pte_unmap(page_table);
spin_unlock(&mm->page_table_lock);
Expand Down
7 changes: 3 additions & 4 deletions mm/swapfile.c
Original file line number Diff line number Diff line change
Expand Up @@ -398,10 +398,9 @@ void free_swap_and_cache(swp_entry_t entry)
}

/*
* Always set the resulting pte to be nowrite (the same as COW pages
* after one process has exited). We don't know just how many PTEs will
* share this swap entry, so be cautious and let do_wp_page work out
* what to do if a write is requested later.
* No need to decide whether this PTE shares the swap entry with others,
* just let do_wp_page work it out if a write is requested later - to
* force COW, vm_page_prot omits write permission from any private vma.
*
* vma->vm_mm->page_table_lock is held.
*/
Expand Down

0 comments on commit 72866f6

Please sign in to comment.