| From | Greg Kroah-Hartman <> | Subject | [ 59/63] KVM: X86 emulator: fix source operand decoding for 8bit mov[zs]x instructions | Date | Mon, 6 May 2013 15:56:37 -0700 |
| |
3.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Gleb Natapov <gleb@redhat.com>
commit 660696d1d16a71e15549ce1bf74953be1592bcd3 upstream.
Source operand for one byte mov[zs]x is decoded incorrectly if it is in high byte register. Fix that.
Signed-off-by: Gleb Natapov <gleb@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
--- arch/x86/kvm/emulate.c | 4 ++++ 1 file changed, 4 insertions(+)
--- a/arch/x86/kvm/emulate.c +++ b/arch/x86/kvm/emulate.c @@ -3737,6 +3737,10 @@ static int decode_operand(struct x86_emu break; case OpMem8: ctxt->memop.bytes = 1; + if (ctxt->memop.type == OP_REG) { + ctxt->memop.addr.reg = decode_register(ctxt, ctxt->modrm_rm, 1); + fetch_register_operand(&ctxt->memop); + } goto mem_common; case OpMem16: ctxt->memop.bytes = 2;
|