diff options
author | Christian König <christian.koenig@amd.com> | 2018-10-16 07:08:21 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2018-11-05 14:21:03 -0500 |
commit | 898c2cb5d94fc56d357f38ba7a05b1e0e23e44a3 (patch) | |
tree | ef72936718d1f313b17cc9c373ddd0c39b29bfe4 /drivers/gpu/drm/amd/amdgpu/cik_sdma.c | |
parent | 2c498d1dbe2e26d62a5ace8fa7b92ac2d084a60c (diff) |
drm/amdgpu: use scheduler fault instead of reset work
Signal a fault to the scheduler on an illegal instruction or register
access violation instead of kicking of the reset handler directly.
Signed-off-by: Christian König <christian.koenig@amd.com>
Acked-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/cik_sdma.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/cik_sdma.c b/drivers/gpu/drm/amd/amdgpu/cik_sdma.c index b918c8886b75..32eb43d165f2 100644 --- a/drivers/gpu/drm/amd/amdgpu/cik_sdma.c +++ b/drivers/gpu/drm/amd/amdgpu/cik_sdma.c | |||
@@ -1214,8 +1214,11 @@ static int cik_sdma_process_illegal_inst_irq(struct amdgpu_device *adev, | |||
1214 | struct amdgpu_irq_src *source, | 1214 | struct amdgpu_irq_src *source, |
1215 | struct amdgpu_iv_entry *entry) | 1215 | struct amdgpu_iv_entry *entry) |
1216 | { | 1216 | { |
1217 | u8 instance_id; | ||
1218 | |||
1217 | DRM_ERROR("Illegal instruction in SDMA command stream\n"); | 1219 | DRM_ERROR("Illegal instruction in SDMA command stream\n"); |
1218 | schedule_work(&adev->reset_work); | 1220 | instance_id = (entry->ring_id & 0x3) >> 0; |
1221 | drm_sched_fault(&adev->sdma.instance[instance_id].ring.sched); | ||
1219 | return 0; | 1222 | return 0; |
1220 | } | 1223 | } |
1221 | 1224 | ||