[PATCH v2] drm/amd/display: Fix late derefrence 'dsc' check in 'link_set_dsc_pps_packet()'

Aurabindo Pillai aurabindo.pillai at amd.com
Thu Jan 11 19:15:50 UTC 2024



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 at vger.kernel.org
> Cc: Aurabindo Pillai <aurabindo.pillai at amd.com>
> Cc: Rodrigo Siqueira <Rodrigo.Siqueira at amd.com>
> Cc: Hamza Mahfooz <hamza.mahfooz at amd.com>
> Cc: Wenjing Liu <wenjing.liu at amd.com>
> Cc: Qingqing Zhuo <qingqing.zhuo at amd.com>
> Signed-off-by: Srinivasan Shanmugam <srinivasan.shanmugam at 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 at amd.com>


More information about the amd-gfx mailing list