diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c index 736a49f218ff753b2922a06a45fd1abff45fae5d..713295d913fd431eeac5086d9024c9e0f1e869ec 100644 --- a/arch/x86/kvm/emulate.c +++ b/arch/x86/kvm/emulate.c @@ -3207,6 +3207,8 @@ static int em_mov_rm_sreg(struct x86_emulate_ctxt *ctxt) return emulate_ud(ctxt); ctxt->dst.val = get_segment_selector(ctxt, ctxt->modrm_reg); + if (ctxt->dst.bytes == 4 && ctxt->dst.type == OP_MEM) + ctxt->dst.bytes = 2; return X86EMUL_CONTINUE; }