diff mbox

[v2] KVM: nVMX: Reset RFLAGS on VM-exit

Message ID 5133A8BF.1010607@web.de (mailing list archive)
State New, archived
Headers show

Commit Message

Jan Kiszka March 3, 2013, 7:47 p.m. UTC
From: Jan Kiszka <jan.kiszka@siemens.com>

Ouch, how could this work so well that far? We need to clear RFLAGS to
the reset value as specified by the SDM. Particularly, IF must be off
after VM-exit!

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---

Changes in v2:
 - use symbolic constant for rflags reset value

 arch/x86/kvm/vmx.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

Comments

Gleb Natapov March 4, 2013, 9 a.m. UTC | #1
On Sun, Mar 03, 2013 at 08:47:11PM +0100, Jan Kiszka wrote:
> From: Jan Kiszka <jan.kiszka@siemens.com>
> 
> Ouch, how could this work so well that far? We need to clear RFLAGS to
> the reset value as specified by the SDM. Particularly, IF must be off
> after VM-exit!
> 
> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Reviewed-by: Gleb Natapov <gleb@redhat.com>

> ---
> 
> Changes in v2:
>  - use symbolic constant for rflags reset value
> 
>  arch/x86/kvm/vmx.c |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
> index 486078d..eece4c8 100644
> --- a/arch/x86/kvm/vmx.c
> +++ b/arch/x86/kvm/vmx.c
> @@ -7454,6 +7454,7 @@ static void load_vmcs12_host_state(struct kvm_vcpu *vcpu,
>  
>  	kvm_register_write(vcpu, VCPU_REGS_RSP, vmcs12->host_rsp);
>  	kvm_register_write(vcpu, VCPU_REGS_RIP, vmcs12->host_rip);
> +	vmx_set_rflags(vcpu, X86_EFLAGS_BIT1);
>  	/*
>  	 * Note that calling vmx_set_cr0 is important, even if cr0 hasn't
>  	 * actually changed, because it depends on the current state of
> -- 
> 1.7.3.4

--
			Gleb.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Marcelo Tosatti March 5, 2013, 11:49 p.m. UTC | #2
On Mon, Mar 04, 2013 at 11:00:38AM +0200, Gleb Natapov wrote:
> On Sun, Mar 03, 2013 at 08:47:11PM +0100, Jan Kiszka wrote:
> > From: Jan Kiszka <jan.kiszka@siemens.com>
> > 
> > Ouch, how could this work so well that far? We need to clear RFLAGS to
> > the reset value as specified by the SDM. Particularly, IF must be off
> > after VM-exit!
> > 
> > Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
> Reviewed-by: Gleb Natapov <gleb@redhat.com>

Applied, thanks.

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 486078d..eece4c8 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -7454,6 +7454,7 @@  static void load_vmcs12_host_state(struct kvm_vcpu *vcpu,
 
 	kvm_register_write(vcpu, VCPU_REGS_RSP, vmcs12->host_rsp);
 	kvm_register_write(vcpu, VCPU_REGS_RIP, vmcs12->host_rip);
+	vmx_set_rflags(vcpu, X86_EFLAGS_BIT1);
 	/*
 	 * Note that calling vmx_set_cr0 is important, even if cr0 hasn't
 	 * actually changed, because it depends on the current state of