aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
diff options
context:
space:
mode:
authorGravatar Lijo Lazar <lijo.lazar@amd.com> 2024-02-22 14:54:50 +0530
committerGravatar Alex Deucher <alexander.deucher@amd.com> 2024-02-26 11:14:31 -0500
commite1f6746f339c9514c0564bab02c3f8847f4aa44b (patch)
tree4cff9b7b5b0f8045ee0fd439a1032fcaa2770c8c /drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
parentdrm/amdgpu: Add fatal error detected flag (diff)
downloadlinux-e1f6746f339c9514c0564bab02c3f8847f4aa44b.tar.gz
linux-e1f6746f339c9514c0564bab02c3f8847f4aa44b.tar.bz2
linux-e1f6746f339c9514c0564bab02c3f8847f4aa44b.zip
drm/amdkfd: Skip packet submission on fatal error
If fatal error is detected, packet submission won't go through. Return error in such cases. Also, avoid waiting for fence when fatal error is detected. Signed-off-by: Lijo Lazar <lijo.lazar@amd.com> Reviewed-by: Asad Kamal <asad.kamal@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c')
-rw-r--r--drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
index c0e71543389a..f4d395e38683 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
@@ -1903,6 +1903,10 @@ int amdkfd_fence_wait_timeout(struct device_queue_manager *dqm,
uint64_t *fence_addr = dqm->fence_addr;
while (*fence_addr != fence_value) {
+ /* Fatal err detected, this response won't come */
+ if (amdgpu_amdkfd_is_fed(dqm->dev->adev))
+ return -EIO;
+
if (time_after(jiffies, end_jiffies)) {
dev_err(dev, "qcm fence wait loop timeout expired\n");
/* In HWS case, this is used to halt the driver thread