In link_set_dsc_pps_packet(), 'struct display_stream_compressor *dsc' was dereferenced in a DC_LOGGER_INIT(dsc->ctx->logger); before the 'dsc' NULL pointer check.
Fixes the below: drivers/gpu/drm/amd/amdgpu/../display/dc/link/link_dpms.c:905 link_set_dsc_pps_packet() warn: variable dereferenced before check 'dsc' (see line 903)
Cc: stable@vger.kernel.org Cc: Aurabindo Pillai aurabindo.pillai@amd.com Cc: Rodrigo Siqueira Rodrigo.Siqueira@amd.com Cc: Hamza Mahfooz hamza.mahfooz@amd.com Cc: Wenjing Liu wenjing.liu@amd.com Cc: Qingqing Zhuo qingqing.zhuo@amd.com Signed-off-by: Srinivasan Shanmugam srinivasan.shanmugam@amd.com --- v2: - Corrected the logic when !pipe_ctx->stream->timing.flags.DSC is true, still skipping the !dsc NULL check
drivers/gpu/drm/amd/display/dc/link/link_dpms.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/amd/display/dc/link/link_dpms.c b/drivers/gpu/drm/amd/display/dc/link/link_dpms.c index 3de148004c06..d084ac0d30b2 100644 --- a/drivers/gpu/drm/amd/display/dc/link/link_dpms.c +++ b/drivers/gpu/drm/amd/display/dc/link/link_dpms.c @@ -900,11 +900,15 @@ bool link_set_dsc_pps_packet(struct pipe_ctx *pipe_ctx, bool enable, bool immedi { struct display_stream_compressor *dsc = pipe_ctx->stream_res.dsc; struct dc_stream_state *stream = pipe_ctx->stream; - DC_LOGGER_INIT(dsc->ctx->logger);
- if (!pipe_ctx->stream->timing.flags.DSC || !dsc) + if (!pipe_ctx->stream->timing.flags.DSC) + return false; + + if(!dsc) return false;
+ DC_LOGGER_INIT(dsc->ctx->logger); + if (enable) { struct dsc_config dsc_cfg; uint8_t dsc_packed_pps[128];
On 2024-01-11 12:57, Srinivasan Shanmugam wrote:
In link_set_dsc_pps_packet(), 'struct display_stream_compressor *dsc' was dereferenced in a DC_LOGGER_INIT(dsc->ctx->logger); before the 'dsc' NULL pointer check.
Fixes the below: drivers/gpu/drm/amd/amdgpu/../display/dc/link/link_dpms.c:905 link_set_dsc_pps_packet() warn: variable dereferenced before check 'dsc' (see line 903)
Cc: stable@vger.kernel.org Cc: Aurabindo Pillai aurabindo.pillai@amd.com Cc: Rodrigo Siqueira Rodrigo.Siqueira@amd.com Cc: Hamza Mahfooz hamza.mahfooz@amd.com Cc: Wenjing Liu wenjing.liu@amd.com Cc: Qingqing Zhuo qingqing.zhuo@amd.com Signed-off-by: Srinivasan Shanmugam srinivasan.shanmugam@amd.com
v2:
- Corrected the logic when !pipe_ctx->stream->timing.flags.DSC is true, still skipping the !dsc NULL check
drivers/gpu/drm/amd/display/dc/link/link_dpms.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/amd/display/dc/link/link_dpms.c b/drivers/gpu/drm/amd/display/dc/link/link_dpms.c index 3de148004c06..d084ac0d30b2 100644 --- a/drivers/gpu/drm/amd/display/dc/link/link_dpms.c +++ b/drivers/gpu/drm/amd/display/dc/link/link_dpms.c @@ -900,11 +900,15 @@ bool link_set_dsc_pps_packet(struct pipe_ctx *pipe_ctx, bool enable, bool immedi { struct display_stream_compressor *dsc = pipe_ctx->stream_res.dsc; struct dc_stream_state *stream = pipe_ctx->stream;
- DC_LOGGER_INIT(dsc->ctx->logger);
- if (!pipe_ctx->stream->timing.flags.DSC || !dsc)
- if (!pipe_ctx->stream->timing.flags.DSC)
return false;
- if(!dsc) return false;
- DC_LOGGER_INIT(dsc->ctx->logger);
- if (enable) { struct dsc_config dsc_cfg; uint8_t dsc_packed_pps[128];
Reviewed-by: Aurabindo Pillai aurabindo.pillai@amd.com
linux-stable-mirror@lists.linaro.org