KVM: x86: emulator_cmpxchg_emulated should mark_page_dirty
authorMarcelo Tosatti <mtosatti@redhat.com>
Wed, 26 Feb 2014 01:44:54 +0000 (22:44 -0300)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 26 Feb 2014 09:11:08 +0000 (10:11 +0100)
emulator_cmpxchg_emulated writes to guest memory, therefore it should
update the dirty bitmap accordingly.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Reviewed-by: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/x86.c

index 6530019116b0d57a360a3cc89ee0a0d19bef78fd..4cca45853dfeb9ac96b47062fbe87211d4c14be2 100644 (file)
@@ -4399,6 +4399,7 @@ static int emulator_cmpxchg_emulated(struct x86_emulate_ctxt *ctxt,
        if (!exchanged)
                return X86EMUL_CMPXCHG_FAILED;
 
+       mark_page_dirty(vcpu->kvm, gpa >> PAGE_SHIFT);
        kvm_mmu_pte_write(vcpu, gpa, new, bytes);
 
        return X86EMUL_CONTINUE;