aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/emulate.c
diff options
context:
space:
mode:
authorGleb Natapov <gleb@redhat.com>2010-04-28 12:15:41 -0400
committerAvi Kivity <avi@redhat.com>2010-08-01 03:35:36 -0400
commitbdb475a323858101f4a5ad6a1a04b1dd8885325a (patch)
tree3e39adfa30395205df20a8a3cf76da28ed932f46 /arch/x86/kvm/emulate.c
parentef050dc0390176ec6888f373edb776587c88be3d (diff)
KVM: x86 emulator: use shadowed register in emulate_sysexit()
emulate_sysexit() should use shadowed registers copy instead of looking into vcpu state directly. Signed-off-by: Gleb Natapov <gleb@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86/kvm/emulate.c')
-rw-r--r--arch/x86/kvm/emulate.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index 291e220c69a5..42cb7d71ff55 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -2063,8 +2063,8 @@ emulate_sysexit(struct x86_emulate_ctxt *ctxt, struct x86_emulate_ops *ops)
2063 ops->set_cached_descriptor(&ss, VCPU_SREG_SS, ctxt->vcpu); 2063 ops->set_cached_descriptor(&ss, VCPU_SREG_SS, ctxt->vcpu);
2064 ops->set_segment_selector(ss_sel, VCPU_SREG_SS, ctxt->vcpu); 2064 ops->set_segment_selector(ss_sel, VCPU_SREG_SS, ctxt->vcpu);
2065 2065
2066 c->eip = ctxt->vcpu->arch.regs[VCPU_REGS_RDX]; 2066 c->eip = c->regs[VCPU_REGS_RDX];
2067 c->regs[VCPU_REGS_RSP] = ctxt->vcpu->arch.regs[VCPU_REGS_RCX]; 2067 c->regs[VCPU_REGS_RSP] = c->regs[VCPU_REGS_RCX];
2068 2068
2069 return X86EMUL_CONTINUE; 2069 return X86EMUL_CONTINUE;
2070} 2070}