x86, mm: fix gup_pte_range() vs DAX mappings

am: 91cdd9d796

Change-Id: I925fe226ea09b4a0b2f1ec5eac509c1bf55f18f0
This commit is contained in:
Dan Williams
2017-03-15 02:27:42 +00:00
committed by android-build-merger

View File

@@ -120,6 +120,11 @@ static noinline int gup_pte_range(pmd_t pmd, unsigned long addr,
return 0;
}
if (!pte_allows_gup(pte_val(pte), write)) {
pte_unmap(ptep);
return 0;
}
if (pte_devmap(pte)) {
pgmap = get_dev_pagemap(pte_pfn(pte), pgmap);
if (unlikely(!pgmap)) {
@@ -127,8 +132,7 @@ static noinline int gup_pte_range(pmd_t pmd, unsigned long addr,
pte_unmap(ptep);
return 0;
}
} else if (!pte_allows_gup(pte_val(pte), write) ||
pte_special(pte)) {
} else if (pte_special(pte)) {
pte_unmap(ptep);
return 0;
}