git: 0ecda8d5ae89 - main - x86: Do not attempt to calibrate the LAPIC timer if no APIC is present
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 28 Dec 2021 22:54:50 UTC
The branch main has been updated by markj:
URL: https://cgit.FreeBSD.org/src/commit/?id=0ecda8d5ae896b229f13bfe73ffa3a7fc81cc550
commit 0ecda8d5ae896b229f13bfe73ffa3a7fc81cc550
Author: Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2021-12-28 22:44:57 +0000
Commit: Mark Johnston <markj@FreeBSD.org>
CommitDate: 2021-12-28 22:47:49 +0000
x86: Do not attempt to calibrate the LAPIC timer if no APIC is present
Reported and tested by: Michael Butler <imb@protected-networks.net>
Reviewed by: jhb, kib
Fixes: 62d09b46ad75 ("x86: Defer LAPIC calibration until after timecounters are available")
MFC after: 3 days
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D33669
---
sys/x86/x86/local_apic.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/sys/x86/x86/local_apic.c b/sys/x86/x86/local_apic.c
index 1264eeaaf7b8..23b780b121e1 100644
--- a/sys/x86/x86/local_apic.c
+++ b/sys/x86/x86/local_apic.c
@@ -913,6 +913,12 @@ native_lapic_calibrate_timer(void)
struct lapic *la;
register_t intr;
+#ifdef DEV_ATPIC
+ /* Fail if the local APIC is not present. */
+ if (!x2apic_mode && lapic_map == NULL)
+ return;
+#endif
+
intr = intr_disable();
la = &lapics[lapic_id()];