drm/amd/display: fix dc_lock leak on GPU reset error paths
authorLinkai Gong <gonglinkai@kylinos.cn>
Wed, 19 Aug 2026 05:47:42 +0000 (13:47 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 25 Aug 2026 22:24:30 +0000 (18:24 -0400)
commit92a9eebd2a1f892fe482154d83f9f1626bc73d3b
tree29d34692e69827d330534406f62a5c77a5da1f1e
parent84298acf1c8be2b1b03c0339bf1eb63102c51728
drm/amd/display: fix dc_lock leak on GPU reset error paths

On GPU reset, dm_suspend() takes dc_lock and leaves it for dm_resume()
to drop. If amdgpu_dm_commit_zero_streams() or dm_dmub_hw_init() fails,
the function returns with the lock still held. The matching resume path
is then skipped, so every later dc_lock take hangs.

Release the cached DC state and unlock before returning the error.

Fixes: 3cf7a0bc87f0 ("drm/amd/display: Catch failures for amdgpu_dm_commit_zero_streams()")
Fixes: 2b6943df5413 ("drm/amd/display: Pass up errors for reset GPU that fails to init HW")
Cc: stable@vger.kernel.org
Signed-off-by: Linkai Gong <gonglinkai@kylinos.cn>
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c