⬢ DragonFlyBSD Kernel Audit
DF-3939 / fix.diff
← back to finding ↓ download raw
--- a/sys/dev/drm/amd/powerplay/smumgr/ci_smumgr.c
+++ b/sys/dev/drm/amd/powerplay/smumgr/ci_smumgr.c
@@ -1655,11 +1655,13 @@ static int ci_program_memory_timing_parameters(struct pp_hwmgr *hwmgr)
 
 	memset(&arb_regs, 0x00, sizeof(SMU7_Discrete_MCArbDramTimingTable));
 
-	for (i = 0; i < data->dpm_table.sclk_table.count; i++) {
-		for (j = 0; j < data->dpm_table.mclk_table.count; j++) {
+	for (i = 0; i < data->dpm_table.sclk_table.count &&
+		     i < SMU7_MAX_LEVELS_GRAPHICS; i++) {
+		for (j = 0; j < data->dpm_table.mclk_table.count &&
+			     j < SMU7_MAX_LEVELS_MEMORY; j++) {
 			result = ci_populate_memory_timing_parameters
 				(hwmgr, data->dpm_table.sclk_table.dpm_levels[i].value,
 				 data->dpm_table.mclk_table.dpm_levels[j].value,
 				 &arb_regs.entries[i][j]);
 
 			if (0 != result)