On Thu, Sep 29, 2022, Paolo Bonzini wrote: > diff --git a/arch/x86/kvm/lapic.h b/arch/x86/kvm/lapic.h > index a5ac4a5a5179..cb7e68c93e1a 100644 > --- a/arch/x86/kvm/lapic.h > +++ b/arch/x86/kvm/lapic.h > @@ -7,7 +7,6 @@ > #include <linux/kvm_host.h> > > #include "hyperv.h" > -#include "kvm_cache_regs.h" > > #define KVM_APIC_INIT 0 > #define KVM_APIC_SIPI 1 > @@ -229,11 +228,7 @@ static inline bool kvm_apic_has_pending_init_or_sipi(struct kvm_vcpu *vcpu) > return lapic_in_kernel(vcpu) && vcpu->arch.apic->pending_events; > } > > -static inline bool kvm_apic_init_sipi_allowed(struct kvm_vcpu *vcpu) > -{ > - return !is_smm(vcpu) && > - !static_call(kvm_x86_apic_init_signal_blocked)(vcpu); > -} > +bool kvm_apic_init_sipi_allowed(struct kvm_vcpu *vcpu); I don't see any reason to force this to go in lapic.c, just include smm.h in lapic.h, it's not an unreasonable dependency. That way this ends up being a direct call when SMM is compiled out. > diff --git a/arch/x86/kvm/smm.h b/arch/x86/kvm/smm.h > new file mode 100644 > index 000000000000..d85d4ccd32dd > --- /dev/null > +++ b/arch/x86/kvm/smm.h > @@ -0,0 +1,25 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > +#ifndef ASM_KVM_SMM_H > +#define ASM_KVM_SMM_H #include <linux/kvm_host.h> For HF_SMM_MASK, KVM_REQ_SMI, struct kvm_vcpu, etc... Relying on the caller to include that might bite someone in the futrure.