From: Mario Limonciello Date: Tue, 18 Feb 2025 04:58:30 +0000 (-0600) Subject: drm/amd/display: Catch failures for amdgpu_dm_commit_zero_streams() X-Git-Tag: v6.15-rc1~120^2~12^2~62 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3cf7a0bc87f028b6bc63a43a80d9d6026ae4d85f;p=thirdparty%2Fkernel%2Flinux.git drm/amd/display: Catch failures for amdgpu_dm_commit_zero_streams() amdgpu_dm_commit_zero_streams() returns a DC error code that isn't checked. Add an explicit check to this and fail dm_suspend() if it is not DC_OK. Reviewed-by: Alex Hung Signed-off-by: Mario Limonciello Signed-off-by: Wayne Lin Tested-by: Daniel Wheeler Signed-off-by: Alex Deucher --- diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index c0887693f7d00..80503d084b828 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -3147,6 +3147,8 @@ static int dm_suspend(struct amdgpu_ip_block *ip_block) struct amdgpu_display_manager *dm = &adev->dm; if (amdgpu_in_reset(adev)) { + enum dc_status res; + mutex_lock(&dm->dc_lock); dc_allow_idle_optimizations(adev->dm.dc, false); @@ -3156,7 +3158,11 @@ static int dm_suspend(struct amdgpu_ip_block *ip_block) if (dm->cached_dc_state) dm_gpureset_toggle_interrupts(adev, dm->cached_dc_state, false); - amdgpu_dm_commit_zero_streams(dm->dc); + res = amdgpu_dm_commit_zero_streams(dm->dc); + if (res != DC_OK) { + drm_err(adev_to_drm(adev), "Failed to commit zero streams: %d\n", res); + return -EINVAL; + } amdgpu_dm_irq_suspend(adev);