⬢ DragonFlyBSD Kernel Audit
DF-3613 / fix.diff
← back to finding ↓ download raw
--- a/sys/dev/drm/radeon/si_dpm.c
+++ b/sys/dev/drm/radeon/si_dpm.c
@@ -4800,6 +4800,9 @@
 	u32 fbdiv;
 	int ret;
 
+	if (reference_clock == 0)
+		return -EINVAL;
+
 	ret = radeon_atom_get_clock_dividers(rdev, COMPUTE_ENGINE_PLL_PARAM,
 					     engine_clock, false, &dividers);
 	if (ret)
@@ -4919,6 +4922,8 @@
 		u32 tmp;
 		u32 reference_clock = rdev->clock.mpll.reference_freq;
 
+		if (reference_clock == 0)
+			return -EINVAL;
 		if (pi->mem_gddr5)
 			freq_nom = memory_clock * 4;
 		else