KVM: x86: 32-bit wraparound read/write not emulated correctly
[sfrench/cifs-2.6.git] / arch / x86 / kvm / x86.c
index cdd6606e4c543803c4b518bb4ed56d11f0a017a1..1e10e3f7f5167d164c03fb82be0b5b2878b886ea 100644 (file)
@@ -4495,6 +4495,8 @@ int emulator_read_write(struct x86_emulate_ctxt *ctxt, unsigned long addr,
                if (rc != X86EMUL_CONTINUE)
                        return rc;
                addr += now;
+               if (ctxt->mode != X86EMUL_MODE_PROT64)
+                       addr = (u32)addr;
                val += now;
                bytes -= now;
        }