summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2014-06-05 17:29:34 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2014-06-18 17:46:20 +0200
commita5457e7bcf9a76ec5c2de5d311d9b0d3b724edc6 (patch)
tree9ff15ff71baedae369e00b80af6c20ce2384d873 /arch
parent32e94d0696c26c6ba4f3ff53e70f6e0e825979bc (diff)
downloadlinux-a5457e7bcf9a76ec5c2de5d311d9b0d3b724edc6.tar.bz2
KVM: emulate: POP SS triggers a MOV SS shadow too
We did not do that when interruptibility was added to the emulator, because at the time pop to segment was not implemented. Now it is, add it. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kvm/emulate.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index 9b5d97db7631..bc670675223d 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -1762,6 +1762,9 @@ static int em_pop_sreg(struct x86_emulate_ctxt *ctxt)
if (rc != X86EMUL_CONTINUE)
return rc;
+ if (ctxt->modrm_reg == VCPU_SREG_SS)
+ ctxt->interruptibility = KVM_X86_SHADOW_INT_MOV_SS;
+
rc = load_segment_descriptor(ctxt, (u16)selector, seg);
return rc;
}