⬢ DragonFlyBSD Kernel Audit
DF-3622 / fix.diff
← back to finding ↓ download raw
--- a/sys/dev/drm/amd/amdgpu/ci_dpm.c
+++ b/sys/dev/drm/amd/amdgpu/ci_dpm.c
@@ -2966,8 +2966,14 @@ static int ci_calculate_mclk_params(stru
 	if (pi->caps_mclk_ss_support) {
 		struct amdgpu_atom_ss ss;
 		u32 freq_nom;
 		u32 tmp;
 		u32 reference_clock = adev->clock.mpll.reference_freq;
 
+		if (reference_clock == 0) {
+			dev_err(adev->dev, "mclk ss with zero mpll reference clock\n");
+			return -EINVAL;
+		}
 		if (mpll_param.qdr == 1)
 			freq_nom = memory_clock * 4 * (1 << mpll_param.post_div);
 		else
 			freq_nom = memory_clock * 2 * (1 << mpll_param.post_div);