]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
drm/amdkfd: fix a memory leak issue
authorDennis Li <Dennis.Li@amd.com>
Wed, 2 Sep 2020 09:11:09 +0000 (17:11 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 1 Oct 2020 11:18:15 +0000 (13:18 +0200)
[ Upstream commit 087d764159996ae378b08c0fdd557537adfd6899 ]

In the resume stage of GPU recovery, start_cpsch will call pm_init
which set pm->allocated as false, cause the next pm_release_ib has
no chance to release ib memory.

Add pm_release_ib in stop_cpsch which will be called in the suspend
stage of GPU recovery.

Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Dennis Li <Dennis.Li@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_device_queue_manager.c

index a2ed9c257cb0dcbd1ac9979eb879be61ade1f423..e9a2784400792095ab3304c0bf6360a057b4f053 100644 (file)
@@ -1075,6 +1075,8 @@ static int stop_cpsch(struct device_queue_manager *dqm)
        unmap_queues_cpsch(dqm, KFD_UNMAP_QUEUES_FILTER_ALL_QUEUES, 0);
        dqm_unlock(dqm);
 
+       pm_release_ib(&dqm->packets);
+
        kfd_gtt_sa_free(dqm->dev, dqm->fence_mem);
        pm_uninit(&dqm->packets);