Commit 91269b8f authored by Avi Kivity's avatar Avi Kivity
Browse files

KVM: x86 emulator: fix handling for unemulated instructions



If an instruction is present in the decode tables but not in the execution
switch, it will be emulated as a NOP.  An example is IRET (0xcf).

Fix by adding default: labels to the execution switches.

Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
parent ef2533da
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -3028,6 +3028,8 @@ x86_emulate_insn(struct x86_emulate_ctxt *ctxt, struct x86_emulate_ops *ops)
		if (c->modrm_reg == 5)
			goto jump_far;
		goto grp45;
	default:
		goto cannot_emulate;
	}

writeback:
@@ -3353,6 +3355,8 @@ x86_emulate_insn(struct x86_emulate_ctxt *ctxt, struct x86_emulate_ops *ops)
		if (rc != X86EMUL_CONTINUE)
			goto done;
		break;
	default:
		goto cannot_emulate;
	}
	goto writeback;