[PATCH 2/2] mm/hmm: Only set FAULT_FLAG_ALLOW_RETRY for non-blocking

Kuehling, Felix Felix.Kuehling at amd.com
Mon May 13 19:36:44 UTC 2019


Hi Jerome,

Do you want me to push the patches to your branch? Or are you going to 
apply them yourself?

Is your hmm-5.2-v3 branch going to make it into Linux 5.2? If so, do you 
know when? I'd like to coordinate with Dave Airlie so that we can also 
get that update into a drm-next branch soon.

I see that Linus merged Dave's pull request for Linux 5.2, which 
includes the first changes in amdgpu using HMM. They're currently broken 
without these two patches.

Thanks,
   Felix

On 2019-05-10 4:14 p.m., Jerome Glisse wrote:
> [CAUTION: External Email]
>
> 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 at amd.com>
> Reviewed-by: Jérôme Glisse <jglisse at redhat.com>
>
>> ---
>>   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
>>


More information about the dri-devel mailing list