Smatch reports that link->link_enc is unconditionally dereferenced at
the top of dce110_enable_tmds_link_output() while the later
setup_ri_pj_check_in_sw_or_hw_mode calls guard against it being NULL,
making those checks contradictory.
Add an early return when link_enc is NULL and drop the redundant NULL
checks from the two call sites that follow, since link_enc is guaranteed
non-NULL past the guard
Fixes: 64fb5e1fd7fd ("drm/amd/display: Enable DCN6 sources compilation")
Reported-by: Dan Carpenter <[email protected]>
Cc: Aurabindo Pillai <[email protected]>
Cc: Roman Li <[email protected]>
Cc: Ivan Lipski <[email protected]>
Cc: Dan Wheeler <[email protected]>
Cc: Roman Li <[email protected]>
Cc: Alex Hung <[email protected]>
Cc: Tom Chung <[email protected]>
Signed-off-by: Srinivasan Shanmugam <[email protected]>
Change-Id: I3e55d05cfbcfa006bb06de92bf735806438b6b42
---
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
b/drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
index bb46d7249025..54797293c0a1 100644
--- a/drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
+++ b/drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
@@ -3487,6 +3487,10 @@ void dce110_enable_tmds_link_output(struct dc_link *link,
uint32_t pixel_clock)
{
(void)link_res;
+
+ if (!link->link_enc)
+ return;
+
link->link_enc->funcs->enable_tmds_output(
link->link_enc,
clock_source,
@@ -3497,12 +3501,12 @@ void dce110_enable_tmds_link_output(struct dc_link
*link,
// For dongle Type 2 with no I2C support on board, setup sw mode of
Ri/Pj check with proper aux instance
if (link->force_to_use_aux) {
- if (link->link_enc &&
link->link_enc->funcs->setup_ri_pj_check_in_sw_or_hw_mode)
+ if (link->link_enc->funcs->setup_ri_pj_check_in_sw_or_hw_mode)
link->link_enc->funcs->setup_ri_pj_check_in_sw_or_hw_mode(link->link_enc,
link->aux_hw_inst, true);
} else
// For HDMI setup hw mode of Ri/Pj check with proper ddc pin
instance
- if (link->link_enc &&
link->link_enc->funcs->setup_ri_pj_check_in_sw_or_hw_mode)
+ if (link->link_enc->funcs->setup_ri_pj_check_in_sw_or_hw_mode)
link->link_enc->funcs->setup_ri_pj_check_in_sw_or_hw_mode(link->link_enc,
link->ddc_hw_inst, false);
}
--
2.34.1