The mqds array members are not freed when dqm is uninitialized.

Signed-off-by: Oded Gabbay <oded.gabbay at amd.com>
---
 drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 4 ++++
 1 file changed, 4 insertions(+)

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 904eb38..924e90c 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
@@ -575,11 +575,15 @@ static int initialize_nocpsch(struct device_queue_manager 
*dqm)

 static void uninitialize_nocpsch(struct device_queue_manager *dqm)
 {
+       int i;
+
        BUG_ON(!dqm);

        BUG_ON(dqm->queue_count > 0 || dqm->processes_count > 0);

        kfree(dqm->allocated_queues);
+       for (i = 0 ; i < KFD_MQD_TYPE_MAX ; i++)
+               kfree(dqm->mqds[i]);
        mutex_destroy(&dqm->lock);
        kfd2kgd->free_mem(dqm->dev->kgd,
                        (struct kgd_mem *) dqm->pipeline_mem);
-- 
1.9.1

Reply via email to