summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
diff options
context:
space:
mode:
authorChunming Zhou <David1.Zhou@amd.com>2016-06-27 12:06:01 +0300
committerAlex Deucher <alexander.deucher@amd.com>2016-07-07 22:06:02 +0300
commit6adb0513a4bf8ac0b11b3f7676e4e4210016aadd (patch)
treeee5f95891b361b3beeff62dbf502e9e1b67824c3 /drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
parent847b6cf9fb771341a550661ef61d510722eba785 (diff)
downloadlinux-6adb0513a4bf8ac0b11b3f7676e4e4210016aadd.tar.xz
drm/amdgpu: must update page table after gpu reset
Record the gpu reset count in vmid to identify if gpu reset happened. Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Chunming Zhou <David1.Zhou@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
index ea10b7af33df..be0941621f4d 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
@@ -255,6 +255,8 @@ int amdgpu_vm_grab_id(struct amdgpu_vm *vm, struct amdgpu_ring *ring,
/* Check all the prerequisites to using this VMID */
if (!id)
continue;
+ if (id->current_gpu_reset_count != atomic_read(&adev->gpu_reset_counter))
+ continue;
if (atomic64_read(&id->owner) != vm->client_id)
continue;
@@ -278,6 +280,7 @@ int amdgpu_vm_grab_id(struct amdgpu_vm *vm, struct amdgpu_ring *ring,
if (r)
goto error;
+ id->current_gpu_reset_count = atomic_read(&adev->gpu_reset_counter);
list_move_tail(&id->list, &adev->vm_manager.ids_lru);
vm->ids[ring->idx] = id;