X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=mm%2Fhuge_memory.c;h=49cb70b5993deddd13e54fda231f14cf414ce543;hb=44a4436952f80f9d4f62b967bd1f2b644fa9b031;hp=5f3ad65c85de01fa6e4c8a07ef9494410bf2b133;hpb=883af14e67e8b8702b5560aa64c888c0cd0bd66c;p=mirror_ubuntu-zesty-kernel.git diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 5f3ad65c85de..49cb70b5993d 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -1253,7 +1253,7 @@ int do_huge_pmd_numa_page(struct vm_fault *vmf, pmd_t pmd) } /* See similar comment in do_numa_page for explanation */ - if (!pmd_write(pmd)) + if (!pmd_savedwrite(pmd)) flags |= TNF_NO_GROUP; /* @@ -1316,7 +1316,7 @@ int do_huge_pmd_numa_page(struct vm_fault *vmf, pmd_t pmd) goto out; clear_pmdnuma: BUG_ON(!PageLocked(page)); - was_writable = pmd_write(pmd); + was_writable = pmd_savedwrite(pmd); pmd = pmd_modify(pmd, vma->vm_page_prot); pmd = pmd_mkyoung(pmd); if (was_writable) @@ -1333,7 +1333,7 @@ out: if (page_nid != -1) task_numa_fault(last_cpupid, page_nid, HPAGE_PMD_NR, - vmf->flags); + flags); return 0; } @@ -1393,8 +1393,7 @@ bool madvise_free_huge_pmd(struct mmu_gather *tlb, struct vm_area_struct *vma, deactivate_page(page); if (pmd_young(orig_pmd) || pmd_dirty(orig_pmd)) { - orig_pmd = pmdp_huge_get_and_clear_full(tlb->mm, addr, pmd, - tlb->fullmm); + pmdp_invalidate(vma, addr, pmd); orig_pmd = pmd_mkold(orig_pmd); orig_pmd = pmd_mkclean(orig_pmd); @@ -1571,7 +1570,7 @@ int change_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd, entry = pmdp_huge_get_and_clear_notify(mm, addr, pmd); entry = pmd_modify(entry, newprot); if (preserve_write) - entry = pmd_mkwrite(entry); + entry = pmd_mk_savedwrite(entry); ret = HPAGE_PMD_NR; set_pmd_at(mm, addr, pmd, entry); BUG_ON(vma_is_anonymous(vma) && !preserve_write &&