From: xinhui pan <xinhui....@amd.com>

[ Upstream commit cc3cb791f19ad0c4f951f38c98aa513b042ab329 ]

Queue would be freed when create_queue_cpsch fails
So lets do queue cleanup otherwise various list and memory issues
happen.

Signed-off-by: xinhui pan <xinhui....@amd.com>
Reviewed-by: Philip Yang <philip.y...@amd.com>
Signed-off-by: Alex Deucher <alexander.deuc...@amd.com>
Signed-off-by: Sasha Levin <sas...@kernel.org>
---
 drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 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 e017b4240472..06417c7abca4 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
@@ -1666,14 +1666,13 @@ static int create_queue_cpsch(struct 
device_queue_manager *dqm, struct queue *q,
        if (q->properties.is_active) {
                increment_queue_count(dqm, qpd, q);
 
-               if (!dqm->dev->shared_resources.enable_mes) {
+               if (!dqm->dev->shared_resources.enable_mes)
                        retval = execute_queues_cpsch(dqm,
-                                            
KFD_UNMAP_QUEUES_FILTER_DYNAMIC_QUEUES, 0);
-               } else {
+                                       KFD_UNMAP_QUEUES_FILTER_DYNAMIC_QUEUES, 
0);
+               else
                        retval = add_queue_mes(dqm, q, qpd);
-                       if (retval)
-                               goto cleanup_queue;
-               }
+               if (retval)
+                       goto cleanup_queue;
        }
 
        /*
-- 
2.35.1

Reply via email to