[PATCH v2 0/2] Change PAT to support mremap use-cases

From: Toshi Kani
Date: Tue Dec 22 2015 - 19:55:12 EST


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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/