summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Prescher <thomas.prescher@cyberus-technology.de>2023-12-12 10:59:37 +0100
committerSean Christopherson <seanjc@google.com>2024-02-07 13:16:11 -0800
commit03f6298c7cf6d2c1ccd0961ab9b340502d63840a (patch)
treef6e80bb340758db4b4d9fe449fb83e54826fcbc4
parente1dda3afe2a9f466940d44db8baaaf6c0ff8793f (diff)
downloadlinux-stable-03f6298c7cf6d2c1ccd0961ab9b340502d63840a.tar.gz
linux-stable-03f6298c7cf6d2c1ccd0961ab9b340502d63840a.tar.bz2
linux-stable-03f6298c7cf6d2c1ccd0961ab9b340502d63840a.zip
KVM: x86/emulator: emulate movbe with operand-size prefix
The MOVBE instruction can come with an operand-size prefix (66h). In this, case the x86 emulation code returns EMULATION_FAILED. It turns out that em_movbe can already handle this case and all that is missing is an entry in respective opcode tables to populate gprefix->pfx_66. Signed-off-by: Thomas Prescher <thomas.prescher@cyberus-technology.de> Signed-off-by: Julian Stecklina <julian.stecklina@cyberus-technology.de> Acked-by: Borislav Petkov (AMD) <bp@alien8.de> Link: https://lore.kernel.org/r/20231212095938.26731-1-julian.stecklina@cyberus-technology.de Signed-off-by: Sean Christopherson <seanjc@google.com>
-rw-r--r--arch/x86/kvm/emulate.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index e223043ef5b2..c75924f4f737 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -4505,11 +4505,11 @@ static const struct instr_dual instr_dual_0f_38_f1 = {
};
static const struct gprefix three_byte_0f_38_f0 = {
- ID(0, &instr_dual_0f_38_f0), N, N, N
+ ID(0, &instr_dual_0f_38_f0), ID(0, &instr_dual_0f_38_f0), N, N
};
static const struct gprefix three_byte_0f_38_f1 = {
- ID(0, &instr_dual_0f_38_f1), N, N, N
+ ID(0, &instr_dual_0f_38_f1), ID(0, &instr_dual_0f_38_f1), N, N
};
/*