--- /tmp/orig/dev/drm/amd/powerplay/hwmgr/vega20_thermal.c 2026-07-23 11:54:56.694859000 +0000 +++ dev/drm/amd/powerplay/hwmgr/vega20_thermal.c 2026-07-23 11:57:17.676284000 +0000 @@ -126,6 +126,8 @@ if (ret) return ret; + if (pp_table->FanMaximumRpm == 0) + return -EINVAL; percent = current_rpm * 100 / pp_table->FanMaximumRpm; *speed = percent > 100 ? 100 : percent; @@ -199,6 +201,8 @@ } crystal_clock_freq = amdgpu_asic_get_xclk((struct amdgpu_device *)hwmgr->adev); + if (speed > UINT_MAX / 8) + return -EINVAL; tach_period = 60 * crystal_clock_freq * 10000 / (8 * speed); WREG32_SOC15(THM, 0, mmCG_TACH_CTRL, REG_SET_FIELD(RREG32_SOC15(THM, 0, mmCG_TACH_CTRL),