mirror of
https://github.com/torvalds/linux.git
synced 2026-06-02 03:24:19 +02:00
KVM: x86/xen: Add an #ifdef'd helper to detect writes to Xen MSR
Add a helper to detect writes to the Xen hypercall page MSR, and provide a stub for CONFIG_KVM_XEN=n to optimize out the check for kernels built without Xen support. Reviewed-by: Paul Durrant <paul@xen.org> Reviewed-by: David Woodhouse <dwmw@amazon.co.uk> Link: https://lore.kernel.org/r/20250215011437.1203084-3-seanjc@google.com Signed-off-by: Sean Christopherson <seanjc@google.com>
This commit is contained in:
parent
5c17848134
commit
bb0978d95a
|
|
@ -3738,7 +3738,7 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
|
|||
* page setup; it could incur locking paths which are not expected
|
||||
* if userspace sets the MSR in an unusual location.
|
||||
*/
|
||||
if (msr && msr == vcpu->kvm->arch.xen_hvm_config.msr &&
|
||||
if (kvm_xen_is_hypercall_page_msr(vcpu->kvm, msr) &&
|
||||
!msr_info->host_initiated)
|
||||
return kvm_xen_write_hypercall_page(vcpu, data);
|
||||
|
||||
|
|
|
|||
|
|
@ -56,6 +56,11 @@ static inline bool kvm_xen_msr_enabled(struct kvm *kvm)
|
|||
kvm->arch.xen_hvm_config.msr;
|
||||
}
|
||||
|
||||
static inline bool kvm_xen_is_hypercall_page_msr(struct kvm *kvm, u32 msr)
|
||||
{
|
||||
return msr && msr == kvm->arch.xen_hvm_config.msr;
|
||||
}
|
||||
|
||||
static inline bool kvm_xen_hypercall_enabled(struct kvm *kvm)
|
||||
{
|
||||
return static_branch_unlikely(&kvm_xen_enabled.key) &&
|
||||
|
|
@ -124,6 +129,11 @@ static inline bool kvm_xen_msr_enabled(struct kvm *kvm)
|
|||
return false;
|
||||
}
|
||||
|
||||
static inline bool kvm_xen_is_hypercall_page_msr(struct kvm *kvm, u32 msr)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline bool kvm_xen_hypercall_enabled(struct kvm *kvm)
|
||||
{
|
||||
return false;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user