Commit be1fb443 authored by Alex Hung's avatar Alex Hung Committed by Alex Deucher
Browse files

drm/amd/display: Check null pointers before used



[WHAT & HOW]
Poniters, such as dc->clk_mgr, are null checked previously in the same
function, so Coverity warns "implies that "dc->clk_mgr" might be null".
As a result, these pointers need to be checked when used again.

This fixes 10 FORWARD_NULL issues reported by Coverity.

Reviewed-by: default avatarRodrigo Siqueira <rodrigo.siqueira@amd.com>
Signed-off-by: default avatarJerry Zuo <jerry.zuo@amd.com>
Signed-off-by: default avatarAlex Hung <alex.hung@amd.com>
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 0beca868
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -195,7 +195,7 @@ void dce11_pplib_apply_display_requirements(
	 * , then change minimum memory clock based on real-time bandwidth
	 * limitation.
	 */
	if ((dc->ctx->asic_id.chip_family == FAMILY_AI) &&
	if (dc->bw_vbios && (dc->ctx->asic_id.chip_family == FAMILY_AI) &&
	     ASICREV_IS_VEGA20_P(dc->ctx->asic_id.hw_internal_rev) && (context->stream_count >= 2)) {
		pp_display_cfg->min_memory_clock_khz = max(pp_display_cfg->min_memory_clock_khz,
							   (uint32_t) div64_s64(
+2 −1
Original line number Diff line number Diff line
@@ -749,7 +749,8 @@ bool hubp1_is_flip_pending(struct hubp *hubp)
	if (flip_pending)
		return true;

	if (earliest_inuse_address.grph.addr.quad_part != hubp->request_address.grph.addr.quad_part)
	if (hubp &&
	    earliest_inuse_address.grph.addr.quad_part != hubp->request_address.grph.addr.quad_part)
		return true;

	return false;
+2 −1
Original line number Diff line number Diff line
@@ -927,7 +927,8 @@ bool hubp2_is_flip_pending(struct hubp *hubp)
	if (flip_pending)
		return true;

	if (earliest_inuse_address.grph.addr.quad_part != hubp->request_address.grph.addr.quad_part)
	if (hubp &&
	    earliest_inuse_address.grph.addr.quad_part != hubp->request_address.grph.addr.quad_part)
		return true;

	return false;
+3 −2
Original line number Diff line number Diff line
@@ -949,7 +949,7 @@ void dce110_edp_backlight_control(
{
	struct dc_context *ctx = link->ctx;
	struct bp_transmitter_control cntl = { 0 };
	uint8_t pwrseq_instance;
	uint8_t pwrseq_instance = 0;
	unsigned int pre_T11_delay = OLED_PRE_T11_DELAY;
	unsigned int post_T7_delay = OLED_POST_T7_DELAY;

@@ -1002,6 +1002,7 @@ void dce110_edp_backlight_control(
	 */
	/* dc_service_sleep_in_milliseconds(50); */
		/*edp 1.2*/
	if (link->panel_cntl)
		pwrseq_instance = link->panel_cntl->pwrseq_inst;

	if (cntl.action == TRANSMITTER_CONTROL_BACKLIGHT_ON) {
+2 −2
Original line number Diff line number Diff line
@@ -1553,7 +1553,7 @@ void dcn10_init_hw(struct dc *dc)
		dc->clk_mgr->funcs->init_clocks(dc->clk_mgr);

	/* Align bw context with hw config when system resume. */
	if (dc->clk_mgr->clks.dispclk_khz != 0 && dc->clk_mgr->clks.dppclk_khz != 0) {
	if (dc->clk_mgr && dc->clk_mgr->clks.dispclk_khz != 0 && dc->clk_mgr->clks.dppclk_khz != 0) {
		dc->current_state->bw_ctx.bw.dcn.clk.dispclk_khz = dc->clk_mgr->clks.dispclk_khz;
		dc->current_state->bw_ctx.bw.dcn.clk.dppclk_khz = dc->clk_mgr->clks.dppclk_khz;
	}
@@ -1673,7 +1673,7 @@ void dcn10_init_hw(struct dc *dc)
		REG_UPDATE(DCFCLK_CNTL, DCFCLK_GATE_DIS, 0);
	}

	if (dc->clk_mgr->funcs->notify_wm_ranges)
	if (dc->clk_mgr && dc->clk_mgr->funcs->notify_wm_ranges)
		dc->clk_mgr->funcs->notify_wm_ranges(dc->clk_mgr);
}

Loading