[PATCH 0/2] fix for direct-I/O to DAX mappings

From: Dan Williams
Date: Sat Feb 25 2017 - 12:13:54 EST


Hi Andrew,

While Ross was doing a review of a new mmap+DAX direct-I/O test case for
xfstests, from Xiong, he noticed occasions where it failed to trigger a
page dirty event. Dave then spotted the problem fixed by patch1. The
pte_devmap() check is precluding pte_allows_gup(), i.e. bypassing
permission checks and dirty tracking.

Patch2 is a cleanup and clarifies that pte_unmap() only needs to be done
once per page-worth of ptes. It unifies the exit paths similar to the
generic gup_pte_range() in the __HAVE_ARCH_PTE_SPECIAL case.

I'm sending this through the -mm tree for a double-check from memory
management folks. It has a build success notification from the kbuild
robot.

---

Dan Williams (2):
x86, mm: fix gup_pte_range() vs DAX mappings
x86, mm: unify exit paths in gup_pte_range()


arch/x86/mm/gup.c | 37 +++++++++++++++++++++----------------
1 file changed, 21 insertions(+), 16 deletions(-)