On Mon, Mar 23, 2020 at 10:14:55PM -0300, Jason Gunthorpe wrote: > if (pte_none(pte)) { > required_fault = hmm_pte_need_fault(hmm_vma_walk, orig_pfn, 0); > if (required_fault) > goto fault; > + *pfn = range->values[HMM_PFN_NONE]; > return 0; > } > > @@ -274,8 +274,10 @@ static int hmm_vma_handle_pte(struct mm_walk *walk, unsigned long addr, > } > > required_fault = hmm_pte_need_fault(hmm_vma_walk, orig_pfn, 0); > - if (!required_fault) > + if (!required_fault) { > + *pfn = range->values[HMM_PFN_NONE]; > return 0; > + } Maybe throw in a goto hole to consolidaste the set PFN and return 0 cases? Otherwise looks good: Reviewed-by: Christoph Hellwig <hch@xxxxxx>