diff options
author | Mina Galić <freebsd@igalic.co> | 2023-02-28 02:58:45 +0000 |
---|---|---|
committer | Warner Losh <imp@FreeBSD.org> | 2023-02-28 02:58:45 +0000 |
commit | a1c63b8e29e832d9ada7c252e7e80ce8b94aeb41 (patch) | |
tree | eb8b2cd90468f52e171fbb853dcbb8971c0d879b | |
parent | 3464fc5f2a3376b4cd5612f1ee0986072b4a65f3 (diff) | |
download | src-a1c63b8e29e832d9ada7c252e7e80ce8b94aeb41.tar.gz src-a1c63b8e29e832d9ada7c252e7e80ce8b94aeb41.zip |
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
(cherry picked from commit 499171a98c8813e4dc6e085461d5c47750efa555)
-rw-r--r-- | sys/x86/x86/local_apic.c | 2 |
1 files changed, 1 insertions, 1 deletions
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 |