diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c index c7a0da45f60a..0accce94f660 100644 --- a/arch/x86/kvm/emulate.c +++ b/arch/x86/kvm/emulate.c @@ -5683,11 +5683,9 @@ int x86_emulate_insn(struct x86_emulate_ctxt *ctxt) if (ctxt->d & Fastop) { void (*fop)(struct fastop *) = (void *)ctxt->execute; rc = fastop(ctxt, fop); - if (rc != X86EMUL_CONTINUE) - goto done; - goto writeback; + } else { + rc = ctxt->execute(ctxt); } - rc = ctxt->execute(ctxt); if (rc != X86EMUL_CONTINUE) goto done; goto writeback;