diff options
author | Greg Kroah-Hartman | 2017-01-16 16:57:54 +0100 |
---|---|---|
committer | Greg Kroah-Hartman | 2017-01-16 16:57:54 +0100 |
commit | 11cca3d12f03c670a6dd14004d40580918898760 (patch) | |
tree | 495a745eaf5c44d08f8b1fb01b61733dc0e78c70 /mm/huge_memory.c | |
parent | serial: 8250: Add new port type for TI DA8xx/66AK2x (diff) | |
parent | Linux 4.10-rc4 (diff) | |
download | kernel-qcow2-linux-11cca3d12f03c670a6dd14004d40580918898760.tar.gz kernel-qcow2-linux-11cca3d12f03c670a6dd14004d40580918898760.tar.xz kernel-qcow2-linux-11cca3d12f03c670a6dd14004d40580918898760.zip |
Merge 4.10-rc4 into tty-next
We want the serial/tty fixes in here as well to build on top of.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'mm/huge_memory.c')
-rw-r--r-- | mm/huge_memory.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 10eedbf14421..9a6bd6c8d55a 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -883,15 +883,17 @@ void huge_pmd_set_accessed(struct vm_fault *vmf, pmd_t orig_pmd) { pmd_t entry; unsigned long haddr; + bool write = vmf->flags & FAULT_FLAG_WRITE; vmf->ptl = pmd_lock(vmf->vma->vm_mm, vmf->pmd); if (unlikely(!pmd_same(*vmf->pmd, orig_pmd))) goto unlock; entry = pmd_mkyoung(orig_pmd); + if (write) + entry = pmd_mkdirty(entry); haddr = vmf->address & HPAGE_PMD_MASK; - if (pmdp_set_access_flags(vmf->vma, haddr, vmf->pmd, entry, - vmf->flags & FAULT_FLAG_WRITE)) + if (pmdp_set_access_flags(vmf->vma, haddr, vmf->pmd, entry, write)) update_mmu_cache_pmd(vmf->vma, vmf->address, vmf->pmd); unlock: @@ -919,8 +921,7 @@ static int do_huge_pmd_wp_page_fallback(struct vm_fault *vmf, pmd_t orig_pmd, } for (i = 0; i < HPAGE_PMD_NR; i++) { - pages[i] = alloc_page_vma_node(GFP_HIGHUSER_MOVABLE | - __GFP_OTHER_NODE, vma, + pages[i] = alloc_page_vma_node(GFP_HIGHUSER_MOVABLE, vma, vmf->address, page_to_nid(page)); if (unlikely(!pages[i] || mem_cgroup_try_charge(pages[i], vma->vm_mm, |