@@ -986,6 +986,7 @@ static int init_user_pages(struct kgd_mem *mem, uint64_t user_addr,
986986 struct amdkfd_process_info * process_info = mem -> process_info ;
987987 struct amdgpu_bo * bo = mem -> bo ;
988988 struct ttm_operation_ctx ctx = { true, false };
989+ struct hmm_range * range ;
989990 int ret = 0 ;
990991
991992 mutex_lock (& process_info -> lock );
@@ -1015,7 +1016,7 @@ static int init_user_pages(struct kgd_mem *mem, uint64_t user_addr,
10151016 return 0 ;
10161017 }
10171018
1018- ret = amdgpu_ttm_tt_get_user_pages (bo , bo -> tbo .ttm -> pages );
1019+ ret = amdgpu_ttm_tt_get_user_pages (bo , bo -> tbo .ttm -> pages , & range );
10191020 if (ret ) {
10201021 pr_err ("%s: Failed to get user pages: %d\n" , __func__ , ret );
10211022 goto unregister_out ;
@@ -1033,7 +1034,7 @@ static int init_user_pages(struct kgd_mem *mem, uint64_t user_addr,
10331034 amdgpu_bo_unreserve (bo );
10341035
10351036release_out :
1036- amdgpu_ttm_tt_get_user_pages_done (bo -> tbo .ttm );
1037+ amdgpu_ttm_tt_get_user_pages_done (bo -> tbo .ttm , range );
10371038unregister_out :
10381039 if (ret )
10391040 amdgpu_mn_unregister (bo );
@@ -2370,6 +2371,8 @@ static int update_invalid_user_pages(struct amdkfd_process_info *process_info,
23702371 /* Go through userptr_inval_list and update any invalid user_pages */
23712372 list_for_each_entry (mem , & process_info -> userptr_inval_list ,
23722373 validate_list .head ) {
2374+ struct hmm_range * range ;
2375+
23732376 invalid = atomic_read (& mem -> invalid );
23742377 if (!invalid )
23752378 /* BO hasn't been invalidated since the last
@@ -2380,7 +2383,8 @@ static int update_invalid_user_pages(struct amdkfd_process_info *process_info,
23802383 bo = mem -> bo ;
23812384
23822385 /* Get updated user pages */
2383- ret = amdgpu_ttm_tt_get_user_pages (bo , bo -> tbo .ttm -> pages );
2386+ ret = amdgpu_ttm_tt_get_user_pages (bo , bo -> tbo .ttm -> pages ,
2387+ & range );
23842388 if (ret ) {
23852389 pr_debug ("Failed %d to get user pages\n" , ret );
23862390
@@ -2399,7 +2403,7 @@ static int update_invalid_user_pages(struct amdkfd_process_info *process_info,
23992403 * FIXME: Cannot ignore the return code, must hold
24002404 * notifier_lock
24012405 */
2402- amdgpu_ttm_tt_get_user_pages_done (bo -> tbo .ttm );
2406+ amdgpu_ttm_tt_get_user_pages_done (bo -> tbo .ttm , range );
24032407 }
24042408
24052409 /* Mark the BO as valid unless it was invalidated
0 commit comments