]> 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:40:50 +0000 (07:40 +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 43c07ac2c6fce4056b1328c1f0dc9574190b8d14..cabe0012ab5b1aaa42235d8e279fac55be90fa0d 100644 (file)
@@ -384,7 +384,7 @@ int pqm_destroy_queue(struct process_queue_manager *pqm, unsigned int qid)
                        pr_err("Pasid 0x%x 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;
                }