]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/amdkfd: Fix pqm_destroy_queue race with GPU reset
authorPhilip Yang <Philip.Yang@amd.com>
Thu, 20 Feb 2025 21:02:13 +0000 (16:02 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 2 May 2025 05:39:12 +0000 (07:39 +0200)
[ Upstream commit 7919b4cad5545ed93778f11881ceee72e4dbed66 ]

If GPU in reset, destroy_queue return -EIO, pqm_destroy_queue should
delete the queue from process_queue_list and free the resource.

Signed-off-by: Philip Yang <Philip.Yang@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c

index 7e6c3ee82f5b233ef3730b78896f10e8c2a92166..234a09b60c552c5000bfaf4e12c730eb0c6d5f14 100644 (file)
@@ -380,7 +380,7 @@ int pqm_destroy_queue(struct process_queue_manager *pqm, unsigned int qid)
                        pr_err("Pasid %d destroy queue %d failed, ret %d\n",
                                pqm->process->pasid,
                                pqn->q->properties.queue_id, retval);
-                       if (retval != -ETIME)
+                       if (retval != -ETIME && retval != -EIO)
                                goto err_destroy_queue;
                }