On Fri, May 10, 2019 at 07:53:24PM +0000, Kuehling, Felix wrote: > Don't set this flag by default in hmm_vma_do_fault. It is set > conditionally just a few lines below. Setting it unconditionally > can lead to handle_mm_fault doing a non-blocking fault, returning > -EBUSY and unlocking mmap_sem unexpectedly. > > Signed-off-by: Felix Kuehling <Felix.Kuehling@xxxxxxx> Reviewed-by: Jérôme Glisse <jglisse@xxxxxxxxxx> > --- > mm/hmm.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/hmm.c b/mm/hmm.c > index b65c27d5c119..3c4f1d62202f 100644 > --- a/mm/hmm.c > +++ b/mm/hmm.c > @@ -339,7 +339,7 @@ struct hmm_vma_walk { > static int hmm_vma_do_fault(struct mm_walk *walk, unsigned long addr, > bool write_fault, uint64_t *pfn) > { > - unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_REMOTE; > + unsigned int flags = FAULT_FLAG_REMOTE; > struct hmm_vma_walk *hmm_vma_walk = walk->private; > struct hmm_range *range = hmm_vma_walk->range; > struct vm_area_struct *vma = walk->vma; > -- > 2.17.1 >