diff options
author | H. Peter Anvin <hpa@linux.intel.com> | 2014-05-21 15:23:19 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2014-05-21 15:23:19 -0700 |
commit | e6ab9a20e73e790d47e6aa231fcf66f27b6ce3d4 (patch) | |
tree | 6a41361e1de2a6693ccae96b99307e79a467236f /mm/mremap.c | |
parent | 34273f41d57ee8d854dcd2a1d754cbb546cb548f (diff) | |
parent | 7ed6fb9b5a5510e4ef78ab27419184741169978a (diff) | |
download | op-kernel-dev-e6ab9a20e73e790d47e6aa231fcf66f27b6ce3d4.zip op-kernel-dev-e6ab9a20e73e790d47e6aa231fcf66f27b6ce3d4.tar.gz |
Merge commit '7ed6fb9b5a5510e4ef78ab27419184741169978a' into x86/espfix
Merge in Linus' tree with:
fa81511bb0bb x86-64, modify_ldt: Make support for 16-bit segments a runtime option
... reverted, to avoid a conflict. This commit is no longer necessary
with the proper fix in place.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'mm/mremap.c')
-rw-r--r-- | mm/mremap.c | 9 |
1 files changed, 8 insertions, 1 deletions
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; |