This patch-set fixes two issues found in PAT when mremap() is used on a VM_PFNMAP range. Patch 1/2 fixes an issue for mremap() with MREMAP_FIXED, which moves a pfnmap from old vma to new vma. untrack_pfn_moved() is added to clear VM_PAT from old vma. Patch 2/2 fixes an issue for mremap() with a shrinking map size. The free_memtype() path is changed to support this mremap case in addition to the regular munmap case. Note, using mremap() with an expanded map size is not a valid case since VM_DONTEXPAND is set along with VM_PFNMAP. v2: - Add an explicit call in the mremap code which clears the PAT flag. (Thomas Gleixner) - Add comment to explain how memtype_rb_match() is used for shrinking case. (Thomas Gleixner) --- Toshi Kani (2): 1/2 x86/mm/pat: Add untrack_pfn_moved for mremap 2/2 x86/mm/pat: Change free_memtype() to support shrinking case --- arch/x86/mm/pat.c | 12 +++++++++- arch/x86/mm/pat_rbtree.c | 52 +++++++++++++++++++++++++++++++++++-------- include/asm-generic/pgtable.h | 10 ++++++++- mm/mremap.c | 4 ++++ 4 files changed, 67 insertions(+), 11 deletions(-) -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>