aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/cik_sdma.c
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2018-10-16 07:08:21 -0400
committerAlex Deucher <alexander.deucher@amd.com>2018-11-05 14:21:03 -0500
commit898c2cb5d94fc56d357f38ba7a05b1e0e23e44a3 (patch)
treeef72936718d1f313b17cc9c373ddd0c39b29bfe4 /drivers/gpu/drm/amd/amdgpu/cik_sdma.c
parent2c498d1dbe2e26d62a5ace8fa7b92ac2d084a60c (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.c5
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