Jelajahi Sumber

drm/amdgpu: sync to the active user on reusing a VMID

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Christian König 9 tahun lalu
induk
melakukan
a8bd1bec7c
1 mengubah file dengan 7 tambahan dan 0 penghapusan
  1. 7 0
      drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c

+ 7 - 0
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c

@@ -188,6 +188,13 @@ int amdgpu_vm_grab_id(struct amdgpu_vm *vm, struct amdgpu_ring *ring,
 		if (!is_later && owner == (long)id &&
 		    pd_addr == id->pd_gpu_addr) {
 
+			r = amdgpu_sync_fence(ring->adev, sync,
+					      id->mgr_id->active);
+			if (r) {
+				mutex_unlock(&adev->vm_manager.lock);
+				return r;
+			}
+
 			fence_put(id->mgr_id->active);
 			id->mgr_id->active = fence_get(fence);