]> git.ipfire.org Git - thirdparty/linux.git/commit
drm/amdkfd: free MQD managers on DQM init failures
authorGuangshuo Li <lgs201920130244@gmail.com>
Wed, 8 Jul 2026 10:51:15 +0000 (18:51 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 17 Jul 2026 21:41:06 +0000 (17:41 -0400)
commitb240f792ae02e9b687eafff934a39e57d1e45365
tree72954041ace0e5f1d7368f74fcd9e6e1265981ee
parent79f408cc06525c6cd01d1a5bf83086a1beede49b
drm/amdkfd: free MQD managers on DQM init failures

The change referenced by the Fixes tag releases the HIQ SDMA MQD trunk
buffer when device_queue_manager_init() fails after it has been
allocated.

However, the same failure path can also be reached after
init_mqd_managers() has succeeded. At that point dqm->mqd_mgrs[] contains
per-type MQD manager objects owned by the device queue manager. The
normal teardown path frees those objects from uninitialize(), but the
initialization error path only frees dqm itself.

Free the MQD managers from the initialization error path as well. This is
safe for earlier failures because dqm is zeroed when allocated and
init_mqd_managers() clears the entries it rolls back internally.

Fixes: b7cccc8286bb ("drm/amdkfd: fix a memory leak in device_queue_manager_init()")
Signed-off-by: Guangshuo Li <lgs201920130244@gmail.com>
Reviewed-by: Mukul Joshi <mukul.joshi@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 1fff2e07b6670bc5b8f7344a8708c136259cb176)
Cc: stable@vger.kernel.org
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c