Explicitly mark EVEX-prefixed opcodes (0x62) as unsupported. Signed-off-by: Chang S. Bae --- Changes since last version: * Rebase onto the recently merged VEX series. Reuse the previously existing VEX-rejection logic and style. --- arch/x86/kvm/emulate.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c index fc065ef53400..820ae381e601 100644 --- a/arch/x86/kvm/emulate.c +++ b/arch/x86/kvm/emulate.c @@ -5040,6 +5040,11 @@ int x86_decode_insn(struct x86_emulate_ctxt *ctxt, void *insn, int insn_len, int if (ctxt->d & NoRex && ctxt->rex_prefix == REX2_PREFIX) opcode.flags = Undefined; + /* EVEX-prefixed instructions are not implemented */ + if (ctxt->opcode_len == 1 && ctxt->b == 0x62 && + (mode == X86EMUL_MODE_PROT64 || (ctxt->modrm & 0xc0) == 0xc0)) + opcode.flags = NotImpl; + if (opcode.flags & ModRM) ctxt->modrm = insn_fetch(u8, ctxt); -- 2.51.0