drm/amdkfd: support concurrent userptr update for HMM
authorPhilip Yang <Philip.Yang@amd.com>
Mon, 4 Mar 2019 19:10:12 +0000 (14:10 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 19 Mar 2019 20:36:58 +0000 (15:36 -0500)
commit386a68e78620c793ed1ba9bc5789b90c18be262a
tree3f02de502fd0da0d899a1fd3c9f5fe929e16dc34
parent1bd4e4ca7bb8f681ff4e2b05c97ce975ccd781d6
drm/amdkfd: support concurrent userptr update for HMM

Userptr restore may have concurrent userptr invalidation after
hmm_vma_fault adds the range to the hmm->ranges list, needs call
hmm_vma_range_done to remove the range from hmm->ranges list first,
then reschedule the restore worker. Otherwise hmm_vma_fault will add
same range to the list, this will cause loop in the list because
range->next point to range itself.

Add function untrack_invalid_user_pages to reduce code duplication.

Signed-off-by: Philip Yang <Philip.Yang@amd.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c