KVM: x86: em_call_far should return failure result
authorNadav Amit <namit@cs.technion.ac.il>
Thu, 25 Dec 2014 00:52:20 +0000 (02:52 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 8 Jan 2015 21:48:06 +0000 (22:48 +0100)
Currently, if em_call_far fails it returns success instead of the resulting
error-code. Fix it.

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

index 1fec3ed86cbfccc15f779e52f6f299f557ed4e1f..8f32c03515ad2eb6169f0b1be48892e0310db018 100644 (file)
@@ -3027,7 +3027,7 @@ static int em_call_far(struct x86_emulate_ctxt *ctxt)
        rc = __load_segment_descriptor(ctxt, sel, VCPU_SREG_CS, cpl,
                                       X86_TRANSFER_CALL_JMP, &new_desc);
        if (rc != X86EMUL_CONTINUE)
-               return X86EMUL_CONTINUE;
+               return rc;
 
        rc = assign_eip_far(ctxt, ctxt->src.val, &new_desc);
        if (rc != X86EMUL_CONTINUE)