X-Git-Url: http://git.monstr.eu/?a=blobdiff_plain;f=mm%2Fhmm.c;h=842e265992380c801d9f83d8749eca50251aa140;hb=4b105f4a256ae629522a7ed1611aba28fd282bd5;hp=fad6be2bf07274b20ba5ec3e4749f9f80985a21d;hpb=7b6ae471e5415bc2bf4384a83ccb4c21de7824c0;p=linux-2.6-microblaze.git diff --git a/mm/hmm.c b/mm/hmm.c index fad6be2bf072..842e26599238 100644 --- a/mm/hmm.c +++ b/mm/hmm.c @@ -295,10 +295,13 @@ static int hmm_vma_handle_pte(struct mm_walk *walk, unsigned long addr, goto fault; /* + * Bypass devmap pte such as DAX page when all pfn requested + * flags(pfn_req_flags) are fulfilled. * Since each architecture defines a struct page for the zero page, just * fall through and treat it like a normal page. */ - if (pte_special(pte) && !is_zero_pfn(pte_pfn(pte))) { + if (pte_special(pte) && !pte_devmap(pte) && + !is_zero_pfn(pte_pfn(pte))) { if (hmm_pte_need_fault(hmm_vma_walk, pfn_req_flags, 0)) { pte_unmap(ptep); return -EFAULT;