]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
mm/hmm: do not check pmd_protnone twice in hmm_vma_handle_pmd()
authorJason Gunthorpe <jgg@mellanox.com>
Wed, 11 Mar 2020 20:03:33 +0000 (17:03 -0300)
committerJason Gunthorpe <jgg@mellanox.com>
Thu, 26 Mar 2020 17:33:37 +0000 (14:33 -0300)
pmd_to_hmm_pfn_flags() already checks it and makes the cpu flags 0. If no
fault is requested then the pfns should be returned with the not valid
flags.

It should not unconditionally fault if faulting is not requested.

Fixes: 2aee09d8c116 ("mm/hmm: change hmm_vma_fault() to allow write fault on page basis")
Reviewed-by: Ralph Campbell <rcampbell@nvidia.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
mm/hmm.c

index 9c82ea972d4b8456ba75826c4b8256ee91533480..37a6fca7da43f0062b03eb55cabd7865925c07b9 100644 (file)
--- a/mm/hmm.c
+++ b/mm/hmm.c
@@ -226,7 +226,7 @@ static int hmm_vma_handle_pmd(struct mm_walk *walk, unsigned long addr,
        hmm_range_need_fault(hmm_vma_walk, pfns, npages, cpu_flags,
                             &fault, &write_fault);
 
-       if (pmd_protnone(pmd) || fault || write_fault)
+       if (fault || write_fault)
                return hmm_vma_walk_hole_(addr, end, fault, write_fault, walk);
 
        pfn = pmd_pfn(pmd) + ((addr & ~PMD_MASK) >> PAGE_SHIFT);