On Wed, Sep 21, 2022, David Matlack wrote: > diff --git a/arch/x86/kvm/mmu.h b/arch/x86/kvm/mmu.h > index 6bdaacb6faa0..168c46fd8dd1 100644 > --- a/arch/x86/kvm/mmu.h > +++ b/arch/x86/kvm/mmu.h > @@ -230,14 +230,14 @@ static inline bool kvm_shadow_root_allocated(struct kvm *kvm) > } > > #ifdef CONFIG_X86_64 > -static inline bool is_tdp_mmu_enabled(struct kvm *kvm) { return kvm->arch.tdp_mmu_enabled; } > +extern bool tdp_mmu_enabled; > #else > -static inline bool is_tdp_mmu_enabled(struct kvm *kvm) { return false; } > +#define tdp_mmu_enabled false > #endif Rather than open code references to the variable, keep the wrappers so that the guts can be changed without needing to churn a pile of code. I'll follow-up in the "Split out TDP MMU page fault handling" with the reasoning. E.g. diff --git a/arch/x86/kvm/mmu.h b/arch/x86/kvm/mmu.h index 6bdaacb6faa0..1ad6d02e103f 100644 --- a/arch/x86/kvm/mmu.h +++ b/arch/x86/kvm/mmu.h @@ -230,14 +230,21 @@ static inline bool kvm_shadow_root_allocated(struct kvm *kvm) } #ifdef CONFIG_X86_64 -static inline bool is_tdp_mmu_enabled(struct kvm *kvm) { return kvm->arch.tdp_mmu_enabled; } +extern bool tdp_mmu_enabled; +#endif + +static inline bool is_tdp_mmu_enabled(void) +{ +#ifdef CONFIG_X86_64 + return tdp_mmu_enabled; #else -static inline bool is_tdp_mmu_enabled(struct kvm *kvm) { return false; } + return false; #endif +} static inline bool kvm_memslots_have_rmaps(struct kvm *kvm) { - return !is_tdp_mmu_enabled(kvm) || kvm_shadow_root_allocated(kvm); + return !is_tdp_mmu_enabled() || kvm_shadow_root_allocated(kvm); } static inline gfn_t gfn_to_index(gfn_t gfn, gfn_t base_gfn, int level)