mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-25 23:30:53 +07:00
KVM: x86: Mark VEX-prefix instructions emulation as unimplemented
Currently the emulator does not recognize vex-prefix instructions. However, it may incorrectly decode lgdt/lidt instructions and try to execute them. This patch returns unhandlable error on their emulation. Signed-off-by: Nadav Amit <namit@cs.technion.ac.il> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
7171511eae
commit
7fe864dc94
@ -4314,6 +4314,13 @@ int x86_decode_insn(struct x86_emulate_ctxt *ctxt, void *insn, int insn_len)
|
||||
if (ctxt->d & ModRM)
|
||||
ctxt->modrm = insn_fetch(u8, ctxt);
|
||||
|
||||
/* vex-prefix instructions are not implemented */
|
||||
if (ctxt->opcode_len == 1 && (ctxt->b == 0xc5 || ctxt->b == 0xc4) &&
|
||||
(mode == X86EMUL_MODE_PROT64 ||
|
||||
(mode >= X86EMUL_MODE_PROT16 && (ctxt->modrm & 0x80)))) {
|
||||
ctxt->d = NotImpl;
|
||||
}
|
||||
|
||||
while (ctxt->d & GroupMask) {
|
||||
switch (ctxt->d & GroupMask) {
|
||||
case Group:
|
||||
|
Loading…
Reference in New Issue
Block a user