⬢ DragonFlyBSD Kernel Audit
DF-4070 / fix.diff
← back to finding ↓ download raw
--- a/sys/dev/drm/amd/powerplay/smumgr/vegam_smumgr.c
+++ b/sys/dev/drm/amd/powerplay/smumgr/vegam_smumgr.c
@@ vegam_populate_all_memory_levels @@
-	uint32_t i;
+	uint32_t i, mclk_count;
@@
-	for (i = 0; i < dpm_table->mclk_table.count; i++) {
+	mclk_count = min(dpm_table->mclk_table.count,
+			(uint32_t)SMU75_MAX_LEVELS_MEMORY);
+	for (i = 0; i < mclk_count; i++) {
@@
-	smu_data->smc_state_table.MemoryDpmLevelCount =
-			(uint8_t)dpm_table->mclk_table.count;
+	smu_data->smc_state_table.MemoryDpmLevelCount = (uint8_t)mclk_count;
@@
-	for (i = 0; i < dpm_table->mclk_table.count; i++)
+	for (i = 0; i < mclk_count; i++)
@@
-	levels[dpm_table->mclk_table.count - 1].DisplayWatermark =
+	levels[mclk_count - 1].DisplayWatermark =
 			PPSMC_DISPLAY_WATERMARK_HIGH;