Prompted by a recent change to add more protection around setting up 'vm_flags' for a dax vma [1], rework the implementation to remove the requirement to set VM_MIXEDMAP and VM_HUGEPAGE. VM_MIXEDMAP is used by dax to direct mm paths like vm_normal_page() that the memory page it is dealing with is not typical memory from the linear map. The get_user_pages_fast() path, since it does not resolve the vma, is already using {pte,pmd}_devmap() as a stand-in for VM_MIXEDMAP, so we use that as a VM_MIXEDMAP replacement in some locations. In the cases where there is no pte to consult we fallback to using vma_is_dax() to detect the VM_MIXEDMAP special case. This patch series passes a run of the ndctl unit test suite and the 'mmap.sh' [2] test in particular. 'mmap.sh' tries to catch dependencies on VM_MIXEDMAP and {pte,pmd}_devmap(). [1]: https://lkml.org/lkml/2017/9/25/638 [2]: https://github.com/pmem/ndctl/blob/master/test/mmap.sh --- Dan Williams (3): dax: disable filesystem dax on devices that do not map pages dax: stop using VM_MIXEDMAP for dax dax: stop using VM_HUGEPAGE for dax drivers/dax/device.c | 1 - drivers/dax/super.c | 7 +++++++ fs/ext2/file.c | 1 - fs/ext4/file.c | 1 - fs/xfs/xfs_file.c | 2 -- mm/huge_memory.c | 8 ++++---- mm/ksm.c | 3 +++ mm/madvise.c | 2 +- mm/memory.c | 20 ++++++++++++++++++-- mm/migrate.c | 3 ++- mm/mlock.c | 3 ++- mm/mmap.c | 5 +++-- 12 files changed, 40 insertions(+), 16 deletions(-)