diff options
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h index 7df1f486f1fb..0c8be665ca2c 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h | |||
| @@ -897,6 +897,8 @@ struct amdgpu_vm_id { | |||
| 897 | /* last flushed PD/PT update */ | 897 | /* last flushed PD/PT update */ |
| 898 | struct fence *flushed_updates; | 898 | struct fence *flushed_updates; |
| 899 | 899 | ||
| 900 | uint32_t current_gpu_reset_count; | ||
| 901 | |||
| 900 | uint32_t gds_base; | 902 | uint32_t gds_base; |
| 901 | uint32_t gds_size; | 903 | uint32_t gds_size; |
| 902 | uint32_t gws_base; | 904 | uint32_t gws_base; |
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, | |||
| 255 | /* Check all the prerequisites to using this VMID */ | 255 | /* Check all the prerequisites to using this VMID */ |
| 256 | if (!id) | 256 | if (!id) |
| 257 | continue; | 257 | continue; |
| 258 | if (id->current_gpu_reset_count != atomic_read(&adev->gpu_reset_counter)) | ||
| 259 | continue; | ||
| 258 | 260 | ||
| 259 | if (atomic64_read(&id->owner) != vm->client_id) | 261 | if (atomic64_read(&id->owner) != vm->client_id) |
| 260 | continue; | 262 | continue; |
| @@ -278,6 +280,7 @@ int amdgpu_vm_grab_id(struct amdgpu_vm *vm, struct amdgpu_ring *ring, | |||
| 278 | if (r) | 280 | if (r) |
| 279 | goto error; | 281 | goto error; |
| 280 | 282 | ||
| 283 | id->current_gpu_reset_count = atomic_read(&adev->gpu_reset_counter); | ||
| 281 | list_move_tail(&id->list, &adev->vm_manager.ids_lru); | 284 | list_move_tail(&id->list, &adev->vm_manager.ids_lru); |
| 282 | vm->ids[ring->idx] = id; | 285 | vm->ids[ring->idx] = id; |
| 283 | 286 | ||
