[AMD Official Use Only - AMD Internal Distribution Only] Hi Srini,
Thanks for helping add missing NULL pointer check in the Linux side. Is there any further actions needed from me? This fix looks good to me, approved. Reviewed-by: Yihan Zhu <yihan...@amd.com> Regards, Yihan Z -----Original Message----- From: SHANMUGAM, SRINIVASAN <srinivasan.shanmu...@amd.com> Sent: Wednesday, April 23, 2025 9:32 AM To: Pillai, Aurabindo <aurabindo.pil...@amd.com> Cc: amd-gfx@lists.freedesktop.org; SHANMUGAM, SRINIVASAN <srinivasan.shanmu...@amd.com>; Zhu, Yihan <yihan....@amd.com>; Wentland, Harry <harry.wentl...@amd.com>; Kazlauskas, Nicholas <nicholas.kazlaus...@amd.com>; Chung, ChiaHsuan (Tom) <chiahsuan.ch...@amd.com>; Rodrigo Siqueira <rodrigo.sique...@amd.com>; Li, Roman <roman...@amd.com>; Hung, Alex <alex.h...@amd.com>; Dan Carpenter <dan.carpen...@linaro.org> Subject: [PATCH] drm/amd/display: Fix NULL pointer dereference for program_lut_mode in dcn401_populate_mcm_luts This commit introduces a NULL pointer check for mpc->funcs->program_lut_mode in the dcn401_populate_mcm_luts function. The previous implementation directly called program_lut_mode without validating its existence, which could lead to a NULL pointer dereference. With this change, the function is now only invoked if mpc->funcs->program_lut_mode is not NULL Fixes the below: drivers/gpu/drm/amd/amdgpu/../display/dc/hwss/dcn401/dcn401_hwseq.c:720 dcn401_populate_mcm_luts() error: we previously assumed 'mpc->funcs->program_lut_mode' could be null (see line 701) drivers/gpu/drm/amd/amdgpu/../display/dc/hwss/dcn401/dcn401_hwseq.c 642 void dcn401_populate_mcm_luts(struct dc *dc, 643 struct pipe_ctx *pipe_ctx, 644 struct dc_cm2_func_luts mcm_luts, 645 bool lut_bank_a) 646 { ... 716 } 717 if (m_lut_params.pwl) { 718 if (mpc->funcs->mcm.populate_lut) 719 mpc->funcs->mcm.populate_lut(mpc, m_lut_params, lut_bank_a, mpcc_id); --> 720 mpc->funcs->program_lut_mode(mpc, MCM_LUT_SHAPER, MCM_LUT_ENABLE, lut_bank_a, mpcc_id); Cc: Yihan Zhu <yihan...@amd.com> Cc: Harry Wentland <harry.wentl...@amd.com> Cc: Nicholas Kazlauskas <nicholas.kazlaus...@amd.com> Cc: Tom Chung <chiahsuan.ch...@amd.com> Cc: Rodrigo Siqueira <rodrigo.sique...@amd.com> Cc: Roman Li <roman...@amd.com> Cc: Alex Hung <alex.h...@amd.com> Cc: Aurabindo Pillai <aurabindo.pil...@amd.com> Reported-by: Dan Carpenter <dan.carpen...@linaro.org> Signed-off-by: Srinivasan Shanmugam <srinivasan.shanmu...@amd.com> --- drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c b/drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c index 8611eb9607df..ae7194da5987 100644 --- a/drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c +++ b/drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c @@ -717,7 +717,8 @@ void dcn401_populate_mcm_luts(struct dc *dc, if (m_lut_params.pwl) { if (mpc->funcs->mcm.populate_lut) mpc->funcs->mcm.populate_lut(mpc, m_lut_params, lut_bank_a, mpcc_id); - mpc->funcs->program_lut_mode(mpc, MCM_LUT_SHAPER, MCM_LUT_ENABLE, lut_bank_a, mpcc_id); + if (mpc->funcs->program_lut_mode) + mpc->funcs->program_lut_mode(mpc, MCM_LUT_SHAPER, MCM_LUT_ENABLE, +lut_bank_a, mpcc_id); } } -- 2.34.1