From: Takuya Yoshikawa <yoshikawa.tak...@oss.ntt.co.jp>

Call emulate_int() directly to avoid spaghetti goto's.

Signed-off-by: Takuya Yoshikawa <yoshikawa.tak...@oss.ntt.co.jp>
---
 arch/x86/kvm/emulate.c |   15 +++++----------
 1 files changed, 5 insertions(+), 10 deletions(-)

diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index 7a06fb2..a5d067c 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -3753,7 +3753,6 @@ int x86_emulate_insn(struct x86_emulate_ctxt *ctxt)
        struct decode_cache *c = &ctxt->decode;
        int rc = X86EMUL_CONTINUE;
        int saved_dst_type = c->dst.type;
-       int irq; /* Used for int 3, int, and into */
 
        c->mem_read.pos = 0;
 
@@ -3947,18 +3946,14 @@ special_insn:
                rc = emulate_load_segment(ctxt, VCPU_SREG_DS);
                break;
        case 0xcc:              /* int3 */
-               irq = 3;
-               goto do_interrupt;
+               rc = emulate_int(ctxt, 3);
+               break;
        case 0xcd:              /* int n */
-               irq = c->src.val;
-       do_interrupt:
-               rc = emulate_int(ctxt, irq);
+               rc = emulate_int(ctxt, c->src.val);
                break;
        case 0xce:              /* into */
-               if (ctxt->eflags & EFLG_OF) {
-                       irq = 4;
-                       goto do_interrupt;
-               }
+               if (ctxt->eflags & EFLG_OF)
+                       rc = emulate_int(ctxt, 4);
                break;
        case 0xd0 ... 0xd1:     /* Grp2 */
                rc = em_grp2(ctxt);
-- 
1.7.4.1

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

Reply via email to