mirror of
https://github.com/torvalds/linux.git
synced 2026-06-04 20:46:48 +02:00
KVM: SVM: Pass through GHCB MSR if and only if VM is an SEV-ES guest
Disable interception of the GHCB MSR if and only if the VM is an SEV-ES
guest. While the exact behavior is completely undocumented in the APM,
common sense and testing on SEV-ES capable CPUs says that accesses to the
GHCB from non-SEV-ES guests will #GP. I.e. from the guest's perspective,
no functional change intended.
Fixes: 376c6d2850 ("KVM: SVM: Provide support for SEV-ES vCPU creation/loading")
Link: https://lore.kernel.org/r/20250610225737.156318-16-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
This commit is contained in:
parent
6b7315fe54
commit
3a0f09b361
|
|
@ -4487,7 +4487,8 @@ static void sev_es_init_vmcb(struct vcpu_svm *svm)
|
|||
/* Can't intercept XSETBV, HV can't modify XCR0 directly */
|
||||
svm_clr_intercept(svm, INTERCEPT_XSETBV);
|
||||
|
||||
/* Clear intercepts on selected MSRs */
|
||||
/* Clear intercepts on MSRs that are context switched by hardware. */
|
||||
svm_disable_intercept_for_msr(vcpu, MSR_AMD64_SEV_ES_GHCB, MSR_TYPE_RW);
|
||||
svm_disable_intercept_for_msr(vcpu, MSR_EFER, MSR_TYPE_RW);
|
||||
svm_disable_intercept_for_msr(vcpu, MSR_IA32_CR_PAT, MSR_TYPE_RW);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -111,7 +111,7 @@ static const struct svm_direct_access_msrs {
|
|||
{ .index = MSR_IA32_XSS, .always = false },
|
||||
{ .index = MSR_EFER, .always = false },
|
||||
{ .index = MSR_IA32_CR_PAT, .always = false },
|
||||
{ .index = MSR_AMD64_SEV_ES_GHCB, .always = true },
|
||||
{ .index = MSR_AMD64_SEV_ES_GHCB, .always = false },
|
||||
{ .index = MSR_TSC_AUX, .always = false },
|
||||
{ .index = X2APIC_MSR(APIC_ID), .always = false },
|
||||
{ .index = X2APIC_MSR(APIC_LVR), .always = false },
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user