X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=mm%2Fmremap.c;h=f343fc73a8bdd7f0ecd68fb1674438033c85cc49;hb=974f7bc5781d3fc16e32d8908c6e48592e767dd2;hp=a32fed454bd7c60e15da0c720b1631b55a3f8835;hpb=32983696a48a6c41d99f3eca82ba7510a552d843;p=mv-sheeva.git diff --git a/mm/mremap.c b/mm/mremap.c index a32fed454bd..f343fc73a8b 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -141,10 +141,10 @@ move_one_page(struct vm_area_struct *vma, unsigned long old_addr, if (dst) { pte_t pte; pte = ptep_clear_flush(vma, old_addr, src); + /* ZERO_PAGE can be dependant on virtual addr */ - if (pfn_valid(pte_pfn(pte)) && - pte_page(pte) == ZERO_PAGE(old_addr)) - pte = pte_wrprotect(mk_pte(ZERO_PAGE(new_addr), new_vma->vm_page_prot)); + pte = move_pte(pte, new_vma->vm_page_prot, + old_addr, new_addr); set_pte_at(mm, new_addr, dst, pte); } else error = -ENOMEM;