From: Kirill A. Shutemov Date: Wed, 12 Dec 2012 21:50:57 +0000 (-0800) Subject: thp: change_huge_pmd(): make sure we don't try to make a page writable X-Git-Tag: v3.12-rc1~1794^2~47 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cad7f613c4d010e1d0f05c9a4fb33c7ae40ba115;p=kernel%2Fkernel-generic.git thp: change_huge_pmd(): make sure we don't try to make a page writable mprotect core never tries to make page writable using change_huge_pmd(). Let's add an assert that the assumption is true. It's important to be sure we will not make huge zero page writable. Signed-off-by: Kirill A. Shutemov Cc: Andrea Arcangeli Cc: Andi Kleen Cc: "H. Peter Anvin" Cc: Mel Gorman Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/mm/huge_memory.c b/mm/huge_memory.c index a959b3a..7742fb3 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -1273,6 +1273,7 @@ int change_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd, pmd_t entry; entry = pmdp_get_and_clear(mm, addr, pmd); entry = pmd_modify(entry, newprot); + BUG_ON(pmd_write(entry)); set_pmd_at(mm, addr, pmd, entry); spin_unlock(&vma->vm_mm->page_table_lock); ret = 1;