On 4/23/2025 7:36 PM, Zhu, Yihan wrote:
[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?
Hi Yihan,
Thanks for your quick review.
No further action is needed from your side at this point. Appreciate
your support!
Best regards,
Srini
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