From: Sean Christopherson Date: Mon, 5 Mar 2018 20:04:41 +0000 (-0800) Subject: KVM: VMX: WARN on a MOV CR3 exit w/ unrestricted guest X-Git-Tag: v4.17-rc1~72^2~60 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=e1de91ccab311ec8007c6e77b0dbb4e3421fd298;p=uclinux-h8%2Flinux.git KVM: VMX: WARN on a MOV CR3 exit w/ unrestricted guest CR3 load/store exiting are always off when unrestricted guest is enabled. WARN on the associated CR3 VMEXIT to detect code that would re-introduce CR3 load/store exiting for unrestricted guest. Signed-off-by: Sean Christopherson Signed-off-by: Radim Krčmář --- diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c index c517e966b829..6cefd7b3ff7f 100644 --- a/arch/x86/kvm/vmx.c +++ b/arch/x86/kvm/vmx.c @@ -6377,6 +6377,7 @@ static int handle_cr(struct kvm_vcpu *vcpu) err = handle_set_cr0(vcpu, val); return kvm_complete_insn_gp(vcpu, err); case 3: + WARN_ON_ONCE(enable_unrestricted_guest); err = kvm_set_cr3(vcpu, val); return kvm_complete_insn_gp(vcpu, err); case 4: @@ -6409,6 +6410,7 @@ static int handle_cr(struct kvm_vcpu *vcpu) case 1: /*mov from cr*/ switch (cr) { case 3: + WARN_ON_ONCE(enable_unrestricted_guest); val = kvm_read_cr3(vcpu); kvm_register_write(vcpu, reg, val); trace_kvm_cr_read(cr, val);