From 4347e8cdab4bf84ac3cb26b2863116e0a3f1397b Mon Sep 17 00:00:00 2001 From: Andy Whitcroft <apw@canonical.com> Date: Wed, 31 Jan 2018 15:53:16 +0000 Subject: [PATCH] Revert "x86/svm: Set IBRS value on VM entry and exit" CVE-2017-5753 (revert embargoed) CVE-2017-5715 (revert embargoed) This reverts commit d3d0f0a209ee29cf553b8b5580eb954b0d4aa970. Signed-off-by: Andy Whitcroft <apw@canonical.com> Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com> --- arch/x86/kvm/svm.c | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index d7bce4d3a27a..2659f5891e78 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c @@ -138,8 +138,6 @@ struct vcpu_svm { u64 next_rip; - u64 spec_ctrl; - u64 host_user_msrs[NR_HOST_SAVE_USER_MSRS]; struct { u16 fs; @@ -3054,9 +3052,6 @@ static int svm_get_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info) case MSR_VM_CR: msr_info->data = svm->nested.vm_cr_msr; break; - case MSR_IA32_SPEC_CTRL: - msr_info->data = svm->spec_ctrl; - break; case MSR_IA32_UCODE_REV: msr_info->data = 0x01000065; break; @@ -3193,9 +3188,6 @@ static int svm_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr) case MSR_VM_IGNNE: vcpu_unimpl(vcpu, "unimplemented wrmsr: 0x%x data 0x%llx\n", ecx, data); break; - case MSR_IA32_SPEC_CTRL: - svm->spec_ctrl = data; - break; default: return kvm_set_msr_common(vcpu, msr); } @@ -3834,9 +3826,6 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu) local_irq_enable(); - if (ibrs_inuse && (svm->spec_ctrl != FEATURE_ENABLE_IBRS)) - wrmsrl(MSR_IA32_SPEC_CTRL, svm->spec_ctrl); - asm volatile ( "push %%" _ASM_BP "; \n\t" "mov %c[rbx](%[svm]), %%" _ASM_BX " \n\t" @@ -3910,12 +3899,6 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu) #endif ); - if (ibrs_inuse) { - rdmsrl(MSR_IA32_SPEC_CTRL, svm->spec_ctrl); - if (svm->spec_ctrl != FEATURE_ENABLE_IBRS) - wrmsrl(MSR_IA32_SPEC_CTRL, FEATURE_ENABLE_IBRS); - } - #ifdef CONFIG_X86_64 wrmsrl(MSR_GS_BASE, svm->host.gs_base); #else -- 2.30.9