aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdkfd
diff options
context:
space:
mode:
authorOded Gabbay <oded.gabbay@amd.com>2014-11-25 08:16:38 -0500
committerOded Gabbay <oded.gabbay@amd.com>2014-11-25 08:16:38 -0500
commit6f9d54fd6e0125b17fb286e1e54e934dd11f60d3 (patch)
tree5c80a19ff8c19633877fc0db2c11de83f7f15702 /drivers/gpu/drm/amd/amdkfd
parente048a0b26033b35eb36c20e4d36fb466a2570c27 (diff)
amdkfd: Fix memory leak of mqds on dqm fini
The mqds array members are not freed when dqm is uninitialized. Reviewed-by: Ben Goz <Ben.Goz@amd.com> Signed-off-by: Oded Gabbay <oded.gabbay@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdkfd')
-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 904eb38e3b9f..924e90c072e5 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)
575 575
576static void uninitialize_nocpsch(struct device_queue_manager *dqm) 576static void uninitialize_nocpsch(struct device_queue_manager *dqm)
577{ 577{
578 int i;
579
578 BUG_ON(!dqm); 580 BUG_ON(!dqm);
579 581
580 BUG_ON(dqm->queue_count > 0 || dqm->processes_count > 0); 582 BUG_ON(dqm->queue_count > 0 || dqm->processes_count > 0);
581 583
582 kfree(dqm->allocated_queues); 584 kfree(dqm->allocated_queues);
585 for (i = 0 ; i < KFD_MQD_TYPE_MAX ; i++)
586 kfree(dqm->mqds[i]);
583 mutex_destroy(&dqm->lock); 587 mutex_destroy(&dqm->lock);
584 kfd2kgd->free_mem(dqm->dev->kgd, 588 kfd2kgd->free_mem(dqm->dev->kgd,
585 (struct kgd_mem *) dqm->pipeline_mem); 589 (struct kgd_mem *) dqm->pipeline_mem);