]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
drm/amd/display: Check denominator crb_pipes before used
authorAlex Hung <alex.hung@amd.com>
Tue, 18 Jun 2024 22:19:48 +0000 (16:19 -0600)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 1 Jul 2024 20:06:53 +0000 (16:06 -0400)
[WHAT & HOW]
A denominator cannot be 0, and is checked before used.

This fixes 2 DIVIDE_BY_ZERO issues reported by Coverity.

Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Jerry Zuo <jerry.zuo@amd.com>
Signed-off-by: Alex Hung <alex.hung@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/resource/dcn315/dcn315_resource.c

index ad40a657e173ae27bd129207c5fa66aa6f694313..3f4b9dba4112440f5408485f3621f5536bb992c3 100644 (file)
@@ -1760,7 +1760,7 @@ static int dcn315_populate_dml_pipes_from_context(
                                bool split_required = pipe->stream->timing.pix_clk_100hz >= dcn_get_max_non_odm_pix_rate_100hz(&dc->dml.soc)
                                                || (pipe->plane_state && pipe->plane_state->src_rect.width > 5120);
 
-                               if (remaining_det_segs > MIN_RESERVED_DET_SEGS)
+                               if (remaining_det_segs > MIN_RESERVED_DET_SEGS && crb_pipes != 0)
                                        pipes[pipe_cnt].pipe.src.det_size_override += (remaining_det_segs - MIN_RESERVED_DET_SEGS) / crb_pipes +
                                                        (crb_idx < (remaining_det_segs - MIN_RESERVED_DET_SEGS) % crb_pipes ? 1 : 0);
                                if (pipes[pipe_cnt].pipe.src.det_size_override > 2 * DCN3_15_MAX_DET_SEGS) {