Messages in this thread Patch in this message | | | From | "Kirill A. Shutemov" <> | Subject | [PATCH] thp, dax: do not try to withdraw pgtable from non-anon VMA | Date | Thu, 11 Feb 2016 05:40:45 +0300 |
| |
DAX doesn't deposit pgtables when it maps huge pages: nothing to withdraw. It can lead to crash.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> --- mm/huge_memory.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 5404f7534366..ca7f21516c3a 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -1706,7 +1706,8 @@ bool move_huge_pmd(struct vm_area_struct *vma, struct vm_area_struct *new_vma, pmd = pmdp_huge_get_and_clear(mm, old_addr, old_pmd); VM_BUG_ON(!pmd_none(*new_pmd)); - if (pmd_move_must_withdraw(new_ptl, old_ptl)) { + if (pmd_move_must_withdraw(new_ptl, old_ptl) && + vma_is_anonymous(vma)) { pgtable_t pgtable; pgtable = pgtable_trans_huge_withdraw(mm, old_pmd); pgtable_trans_huge_deposit(mm, new_pmd, pgtable); -- 2.7.0
| |