From: Roman Li <[email protected]>

[Why]
NumFclkLevelsEnabled is used for DcfClocks bounds check
instead of designated NumDcfClkLevelsEnabled.
That can cause array index out-of-bounds access.

[How]
Use designated variable for dcn35 DcfClocks bounds check.

Fixes: 6b8d9862159f ("drm/amd/display: Fix array-index-out-of-bounds in 
dcn35_clkmgr")

Cc: Mario Limonciello <[email protected]>
Cc: Alex Deucher <[email protected]>
Cc: [email protected]
Reviewed-by: Sun peng Li <[email protected]>
Acked-by: Tom Chung <[email protected]>
Signed-off-by: Roman Li <[email protected]>
---
 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c 
b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c
index 928d61f9f858..8efde1cfb49a 100644
--- a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c
+++ b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c
@@ -715,7 +715,7 @@ static void dcn35_clk_mgr_helper_populate_bw_params(struct 
clk_mgr_internal *clk
                clock_table->NumFclkLevelsEnabled;
        max_fclk = find_max_clk_value(clock_table->FclkClocks_Freq, num_fclk);
 
-       num_dcfclk = (clock_table->NumFclkLevelsEnabled > 
NUM_DCFCLK_DPM_LEVELS) ? NUM_DCFCLK_DPM_LEVELS :
+       num_dcfclk = (clock_table->NumDcfClkLevelsEnabled > 
NUM_DCFCLK_DPM_LEVELS) ? NUM_DCFCLK_DPM_LEVELS :
                clock_table->NumDcfClkLevelsEnabled;
        for (i = 0; i < num_dcfclk; i++) {
                int j;
-- 
2.34.1

Reply via email to