lkml.org 
[lkml]   [2014]   [Jun]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 6/9] KVM: x86: movnti minimum op size of 32-bit is not kept
    Date
    If the operand-size prefix (0x66) is used in 64-bit mode, the emulator would
    assume the destination operand is 64-bit, when it should be 32-bit.

    Reminder: movnti does not support 16-bit operands and its default operand size
    is 32-bit.

    Signed-off-by: Nadav Amit <namit@cs.technion.ac.il>
    ---
    arch/x86/kvm/emulate.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
    index 4cb0da6..be3f764 100644
    --- a/arch/x86/kvm/emulate.c
    +++ b/arch/x86/kvm/emulate.c
    @@ -4836,8 +4836,8 @@ twobyte_insn:
    break;
    case 0xc3: /* movnti */
    ctxt->dst.bytes = ctxt->op_bytes;
    - ctxt->dst.val = (ctxt->op_bytes == 4) ? (u32) ctxt->src.val :
    - (u64) ctxt->src.val;
    + ctxt->dst.val = (ctxt->op_bytes == 8) ? (u64) ctxt->src.val :
    + (u32) ctxt->src.val;
    break;
    default:
    goto cannot_emulate;
    --
    1.9.1


    \
     
     \ /
      Last update: 2014-06-02 18:21    [W:3.127 / U:0.344 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site