mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-25 13:23:34 -04:00
KVM: x86: Move async #PF helpers to x86.h (as inlines)
Move kvm_pv_async_pf_enabled() and kvm_async_pf_hash_reset() to x86.h in anticipation of extracting the majority of register and MSR specific code out of x86.c. No functional change intended. Reviewed-by: Kai Huang <kai.huang@intel.com> Reviewed-by: Yosry Ahmed <yosry@kernel.org> Link: https://patch.msgid.link/20260529222223.870923-15-seanjc@google.com Signed-off-by: Sean Christopherson <seanjc@google.com>
This commit is contained in:
@@ -575,13 +575,6 @@ static struct kmem_cache *kvm_alloc_emulator_cache(void)
|
||||
|
||||
static int emulator_fix_hypercall(struct x86_emulate_ctxt *ctxt);
|
||||
|
||||
static inline void kvm_async_pf_hash_reset(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < ASYNC_PF_PER_VCPU; i++)
|
||||
vcpu->arch.apf.gfns[i] = ~0;
|
||||
}
|
||||
|
||||
static void kvm_destroy_user_return_msrs(void)
|
||||
{
|
||||
int cpu;
|
||||
@@ -1032,18 +1025,6 @@ bool kvm_require_dr(struct kvm_vcpu *vcpu, int dr)
|
||||
}
|
||||
EXPORT_SYMBOL_FOR_KVM_INTERNAL(kvm_require_dr);
|
||||
|
||||
static bool __kvm_pv_async_pf_enabled(u64 data)
|
||||
{
|
||||
u64 mask = KVM_ASYNC_PF_ENABLED | KVM_ASYNC_PF_DELIVERY_AS_INT;
|
||||
|
||||
return (data & mask) == mask;
|
||||
}
|
||||
|
||||
static bool kvm_pv_async_pf_enabled(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
return __kvm_pv_async_pf_enabled(vcpu->arch.apf.msr_en_val);
|
||||
}
|
||||
|
||||
static inline u64 pdptr_rsvd_bits(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
return vcpu->arch.reserved_gpa_bits | rsvd_bits(5, 8) | rsvd_bits(1, 2);
|
||||
|
||||
@@ -559,6 +559,25 @@ static inline bool kvm_pat_valid(u64 data)
|
||||
return (data | ((data & 0x0202020202020202ull) << 1)) == data;
|
||||
}
|
||||
|
||||
static inline bool __kvm_pv_async_pf_enabled(u64 data)
|
||||
{
|
||||
u64 mask = KVM_ASYNC_PF_ENABLED | KVM_ASYNC_PF_DELIVERY_AS_INT;
|
||||
|
||||
return (data & mask) == mask;
|
||||
}
|
||||
|
||||
static inline bool kvm_pv_async_pf_enabled(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
return __kvm_pv_async_pf_enabled(vcpu->arch.apf.msr_en_val);
|
||||
}
|
||||
|
||||
static inline void kvm_async_pf_hash_reset(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < ASYNC_PF_PER_VCPU; i++)
|
||||
vcpu->arch.apf.gfns[i] = ~0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Trigger machine check on the host. We assume all the MSRs are already set up
|
||||
* by the CPU and that we still run on the same CPU as the MCE occurred on.
|
||||
|
||||
Reference in New Issue
Block a user