mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 02:21:52 +09:00
drm/amd/display: Ensure index calculation will not overflow
[ Upstream commit 8e2734bf444767fed787305ccdcb36a2be5301a2 ] [WHY & HOW] Make sure vmid0p72_idx, vnom0p8_idx and vmax0p9_idx calculation will never overflow and exceess array size. This fixes 3 OVERRUN and 1 INTEGER_OVERFLOW issues reported by Coverity. Reviewed-by: Harry Wentland <harry.wentland@amd.com> Acked-by: Tom Chung <chiahsuan.chung@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> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
33e1ffc9d4
commit
733ae18550
@@ -1453,10 +1453,9 @@ void dcn_bw_update_from_pplib_fclks(
|
||||
ASSERT(fclks->num_levels);
|
||||
|
||||
vmin0p65_idx = 0;
|
||||
vmid0p72_idx = fclks->num_levels -
|
||||
(fclks->num_levels > 2 ? 3 : (fclks->num_levels > 1 ? 2 : 1));
|
||||
vnom0p8_idx = fclks->num_levels - (fclks->num_levels > 1 ? 2 : 1);
|
||||
vmax0p9_idx = fclks->num_levels - 1;
|
||||
vmid0p72_idx = fclks->num_levels > 2 ? fclks->num_levels - 3 : 0;
|
||||
vnom0p8_idx = fclks->num_levels > 1 ? fclks->num_levels - 2 : 0;
|
||||
vmax0p9_idx = fclks->num_levels > 0 ? fclks->num_levels - 1 : 0;
|
||||
|
||||
dc->dcn_soc->fabric_and_dram_bandwidth_vmin0p65 =
|
||||
32 * (fclks->data[vmin0p65_idx].clocks_in_khz / 1000.0) / 1000.0;
|
||||
|
||||
Reference in New Issue
Block a user