diff options
| author | Wentao Liang <vulab@iscas.ac.cn> | 2026-09-16 09:49:56 +0000 |
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2026-09-23 15:51:09 -0400 |
| commit | c5fd4eaad50d620c7e09ac2082b2fb55ee54170e (patch) | |
| tree | d135a733adc26ae79f21cc22279caa573fc342cc /tools/perf/scripts/python/stackcollapse.py | |
| parent | 93f51579e7df248780214094418f205253383cc5 (diff) | |
| download | linux-next-c5fd4eaad50d620c7e09ac2082b2fb55ee54170e.tar.gz linux-next-c5fd4eaad50d620c7e09ac2082b2fb55ee54170e.zip | |
drm/amd/display: Fix dc stream excess put in dm_update_crtc_state()
In dm_update_crtc_state(), when a modeset is required the newly created
stream is stored in dm_new_crtc_state->stream and an extra reference is
taken with dc_stream_retain(). The reference returned by
create_validate_stream_for_sink() is released as an extra reference at
the skip_modeset label, leaving the stream owned by the new CRTC state.
If amdgpu_dm_check_crtc_color_mgmt() fails afterwards, the code jumps
to the fail label which releases new_stream again. Since the extra
reference was already released at skip_modeset, this drops the
reference owned by dm_new_crtc_state->stream and the stream is
released while the atomic state still points to it, leading to a
premature free of the dc stream.
Set new_stream to NULL after releasing the extra reference at the
skip_modeset label so that a later goto fail cannot release the
reference owned by the new CRTC state.
Fixes: 7cd4b70091a5 ("drm/amd/display: Rework CRTC color management")
Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 102a47065a62dc8f6bbbb47cf082a2934282eb08)
Cc: stable@vger.kernel.org
Diffstat (limited to 'tools/perf/scripts/python/stackcollapse.py')
0 files changed, 0 insertions, 0 deletions
