The only purpose of this patch is to make the next patch simpler
to review.  No semantic change.

Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
---
 arch/x86/kvm/emulate.c | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index 15453e569f3d..d79677c6056d 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -4388,12 +4388,15 @@ done_prefixes:
                ctxt->d |= opcode.flags;
        }
 
+       /* Unrecognised? */
+       if (ctxt->d == 0)
+               return EMULATION_FAILED;
+
        ctxt->execute = opcode.u.execute;
        ctxt->check_perm = opcode.check_perm;
        ctxt->intercept = opcode.intercept;
 
-       /* Unrecognised? */
-       if (ctxt->d == 0 || (ctxt->d & NotImpl))
+       if (ctxt->d & NotImpl)
                return EMULATION_FAILED;
 
        if (!(ctxt->d & EmulateOnUD) && ctxt->ud)
@@ -4535,19 +4538,19 @@ int x86_emulate_insn(struct x86_emulate_ctxt *ctxt)
 
        ctxt->mem_read.pos = 0;
 
-       if ((ctxt->mode == X86EMUL_MODE_PROT64 && (ctxt->d & No64)) ||
-                       (ctxt->d & Undefined)) {
+       /* LOCK prefix is allowed only with some instructions */
+       if (ctxt->lock_prefix && (!(ctxt->d & Lock) || ctxt->dst.type != 
OP_MEM)) {
                rc = emulate_ud(ctxt);
                goto done;
        }
 
-       /* LOCK prefix is allowed only with some instructions */
-       if (ctxt->lock_prefix && (!(ctxt->d & Lock) || ctxt->dst.type != 
OP_MEM)) {
+       if ((ctxt->d & SrcMask) == SrcMemFAddr && ctxt->src.type != OP_MEM) {
                rc = emulate_ud(ctxt);
                goto done;
        }
 
-       if ((ctxt->d & SrcMask) == SrcMemFAddr && ctxt->src.type != OP_MEM) {
+       if ((ctxt->mode == X86EMUL_MODE_PROT64 && (ctxt->d & No64)) ||
+                       (ctxt->d & Undefined)) {
                rc = emulate_ud(ctxt);
                goto done;
        }
-- 
1.8.3.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