KVM: x86 emulator: Fix emulate_grp3 return values
authorMohammed Gamal <m.gamal005@gmail.com>
Sun, 8 Aug 2010 18:11:38 +0000 (21:11 +0300)
committerAvi Kivity <avi@redhat.com>
Sun, 24 Oct 2010 08:51:04 +0000 (10:51 +0200)
This patch lets emulate_grp3() return X86EMUL_* return codes instead
of hardcoded ones.

Signed-off-by: Mohammed Gamal <m.gamal005@gmail.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
arch/x86/kvm/emulate.c

index f0415eab6591cd6704a49262af9ec9f970d01a37..8617c344405d188f7d8774d1edab1fae66f84566 100644 (file)
@@ -1424,9 +1424,9 @@ static inline int emulate_grp3(struct x86_emulate_ctxt *ctxt,
                emulate_1op_rax_rdx("idiv", c->src, *rax, *rdx, ctxt->eflags);
                break;
        default:
-               return 0;
+               return X86EMUL_UNHANDLEABLE;
        }
-       return 1;
+       return X86EMUL_CONTINUE;
 }
 
 static inline int emulate_grp45(struct x86_emulate_ctxt *ctxt,
@@ -3172,7 +3172,7 @@ special_insn:
                ctxt->eflags ^= EFLG_CF;
                break;
        case 0xf6 ... 0xf7:     /* Grp3 */
-               if (!emulate_grp3(ctxt, ops))
+               if (emulate_grp3(ctxt, ops) != X86EMUL_CONTINUE)
                        goto cannot_emulate;
                break;
        case 0xf8: /* clc */