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 <[email protected]>


Regards,
Yihan Z

-----Original Message-----
From: SHANMUGAM, SRINIVASAN <[email protected]>
Sent: Wednesday, April 23, 2025 9:32 AM
To: Pillai, Aurabindo <[email protected]>
Cc: [email protected]; SHANMUGAM, SRINIVASAN <[email protected]>; Zhu, Yihan <[email protected]>; 
Wentland, Harry <[email protected]>; Kazlauskas, Nicholas <[email protected]>; Chung, ChiaHsuan (Tom) 
<[email protected]>; Rodrigo Siqueira <[email protected]>; Li, Roman <[email protected]>; Hung, Alex 
<[email protected]>; Dan Carpenter <[email protected]>
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 <[email protected]>
Cc: Harry Wentland <[email protected]>
Cc: Nicholas Kazlauskas <[email protected]>
Cc: Tom Chung <[email protected]>
Cc: Rodrigo Siqueira <[email protected]>
Cc: Roman Li <[email protected]>
Cc: Alex Hung <[email protected]>
Cc: Aurabindo Pillai <[email protected]>
Reported-by: Dan Carpenter <[email protected]>
Signed-off-by: Srinivasan Shanmugam <[email protected]>
---
  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

Reply via email to