diff --git a/sys/dev/drm/radeon/ni_dpm.c b/sys/dev/drm/radeon/ni_dpm.c --- a/sys/dev/drm/radeon/ni_dpm.c +++ b/sys/dev/drm/radeon/ni_dpm.c @@ -4027,7 +4027,10 @@ non_clock_info, power_info->pplib.ucNonClockSize); idx = (u8 *)&power_state->v1.ucClockStateIndices[0]; - for (j = 0; j < (power_info->pplib.ucStateEntrySize - 1); j++) { + for (j = 0; + j < (power_info->pplib.ucStateEntrySize - 1) && + j < NISLANDS_MAX_SMC_PERFORMANCE_LEVELS_PER_SWSTATE; + j++) { clock_info = (union pplib_clock_info *) ((uint8_t*)mode_info->atom_context->bios + data_offset + le16_to_cpu(power_info->pplib.usClockInfoArrayOffset) +