DF-4857 / fix.diff
--- a/sys/dev/drm/radeon/rv730_dpm.c +++ b/sys/dev/drm/radeon/rv730_dpm.c @@ -67,6 +67,12 @@ else post_divider = 1; + /* FirmwareInfo.usReferenceClock is used verbatim for + * reference_freq; a crafted/corrupt VBIOS supplying zero must not + * reach the divider. */ + if (reference_clock == 0) + return -EINVAL; + tmp = (u64) engine_clock * reference_divider * post_divider * 16384; do_div(tmp, reference_clock); fbdiv = (u32) tmp; |