]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amd/display: set new_stream to NULL after release
authorWenTao Liang <vulab@iscas.ac.cn>
Sun, 28 Jun 2026 07:27:40 +0000 (15:27 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 17 Jul 2026 21:41:25 +0000 (17:41 -0400)
In dm_update_crtc_state(), the skip_modeset path releases new_stream
via dc_stream_release() but does not set the pointer to NULL.

If a later error (e.g., color management failure) triggers the fail
label, the error path calls dc_stream_release() again on the same
dangling pointer, causing a double release and potential use-after-free.

Fix this by setting new_stream to NULL after the initial release.

Fixes: 9b690ef3c704 ("drm/amd/display: Avoid full modeset when not required")
Signed-off-by: WenTao Liang <vulab@iscas.ac.cn>
Reviewed-by: George Zhang <george.zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 99f3af19073b3ddbfd96e789124cce12c4277b28)
Cc: stable@vger.kernel.org
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

index 6210a1ff7cc2a882398a81e45f98b94b1d05df11..b1e6d735cf027935ca2244eb9d4aec84f13407d1 100644 (file)
@@ -12101,6 +12101,7 @@ skip_modeset:
        /* Release extra reference */
        if (new_stream)
                dc_stream_release(new_stream);
+       new_stream = NULL;
 
        /*
         * We want to do dc stream updates that do not require a