From 55639067a29b1250f7ba7dfc012723a843c5f91c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mina=20Gali=C4=87?= Date: Mon, 27 Feb 2023 19:58:45 -0700 Subject: [PATCH] apic: prevent divide by zero in CPU frequency init If a CPU for some reason returns 0 as CPU frequency, we currently panic on the resulting divide by zero when trying to initialize the CPU(s) via APIC. When this happens, we'll fallback to measuring the frequency instead. PR: 269767 Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/664 Approved by: re@ (cperciva) (cherry picked from commit 499171a98c8813e4dc6e085461d5c47750efa555) (cherry picked from commit a1c63b8e29e832d9ada7c252e7e80ce8b94aeb41) --- sys/x86/x86/local_apic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/x86/x86/local_apic.c b/sys/x86/x86/local_apic.c index 4ab4e78f20e7..482b0ebd81bc 100644 --- a/sys/x86/x86/local_apic.c +++ b/sys/x86/x86/local_apic.c @@ -1027,7 +1027,7 @@ lapic_calibrate_initcount_cpuid_vm(void) /* Record divided frequency. */ count_freq = freq / lapic_timer_divisor; - return (true); + return (count_freq != 0); } static uint64_t