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 from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/