KVM: x86: Call-far should not be emulated as stack op
authorNadav Amit <namit@cs.technion.ac.il>
Sun, 3 May 2015 17:22:57 +0000 (20:22 +0300)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 8 May 2015 08:51:44 +0000 (10:51 +0200)
Far call in 64-bit has a 32-bit operand size. Remove the marking of this
operation as Stack so it can be emulated correctly in 64-bit.

Signed-off-by: Nadav Amit <namit@cs.technion.ac.il>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/emulate.c

index 630bcb0d7a045b4930213eac1c1bbee3ef7d0ebe..5839fc56cb3eee93e16572deb3add7db430c9e55 100644 (file)
@@ -3840,7 +3840,7 @@ static const struct opcode group5[] = {
        F(DstMem | SrcNone | Lock,              em_inc),
        F(DstMem | SrcNone | Lock,              em_dec),
        I(SrcMem | NearBranch,                  em_call_near_abs),
-       I(SrcMemFAddr | ImplicitOps | Stack,    em_call_far),
+       I(SrcMemFAddr | ImplicitOps,            em_call_far),
        I(SrcMem | NearBranch,                  em_jmp_abs),
        I(SrcMemFAddr | ImplicitOps,            em_jmp_far),
        I(SrcMem | Stack,                       em_push), D(Undefined),