X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=mm%2Fmremap.c;h=05f1180e9f21822e99a5f11a2a7a03af663a422c;hb=4fff5ca78029f4df452334ecf013e53bf29079cc;hp=0843feb66f3d0236abd4386b5bfd0170c24ae0ef;hpb=d96d8aa261708ecb1536d2733081800e7e15e8f4;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git diff --git a/mm/mremap.c b/mm/mremap.c index 0843feb..05f1180 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -194,10 +194,17 @@ unsigned long move_page_tables(struct vm_area_struct *vma, break; if (pmd_trans_huge(*old_pmd)) { int err = 0; - if (extent == HPAGE_PMD_SIZE) + if (extent == HPAGE_PMD_SIZE) { + VM_BUG_ON(vma->vm_file || !vma->anon_vma); + /* See comment in move_ptes() */ + if (need_rmap_locks) + anon_vma_lock_write(vma->anon_vma); err = move_huge_pmd(vma, new_vma, old_addr, new_addr, old_end, old_pmd, new_pmd); + if (need_rmap_locks) + anon_vma_unlock_write(vma->anon_vma); + } if (err > 0) { need_flush = true; continue;