From deca0138dc659747c9edd4648690cdfdb01f58e8 Mon Sep 17 00:00:00 2001 From: Mark Johnston Date: Tue, 28 Dec 2021 17:42:12 -0500 Subject: [PATCH] x86: Check for APIC presence only if DEV_ATPIC is defined We only attempt to gracefully handle absence of an APIC if "device atpic" is defined in the kernel configuration. Suggested by: kib Reviewed by: jhb, kib MFC after: 1 week Sponsored by: The FreeBSD Foundation --- sys/x86/x86/local_apic.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/x86/x86/local_apic.c b/sys/x86/x86/local_apic.c index ac3dfa4ca1d..1264eeaaf7b 100644 --- a/sys/x86/x86/local_apic.c +++ b/sys/x86/x86/local_apic.c @@ -932,9 +932,11 @@ native_lapic_enable_pmc(void) #ifdef HWPMC_HOOKS u_int32_t maxlvt; +#ifdef DEV_ATPIC /* Fail if the local APIC is not present. */ if (!x2apic_mode && lapic_map == NULL) return (0); +#endif /* Fail if the PMC LVT is not present. */ maxlvt = (lapic_read32(LAPIC_VERSION) & APIC_VER_MAXLVT) >> MAXLVTSHIFT; @@ -971,9 +973,11 @@ native_lapic_disable_pmc(void) #ifdef HWPMC_HOOKS u_int32_t maxlvt; +#ifdef DEV_ATPIC /* Fail if the local APIC is not present. */ if (!x2apic_mode && lapic_map == NULL) return; +#endif /* Fail if the PMC LVT is not present. */ maxlvt = (lapic_read32(LAPIC_VERSION) & APIC_VER_MAXLVT) >> MAXLVTSHIFT;