]> git.hungrycats.org Git - linux/commitdiff
KVM: Fix dirty bit tracking for slots with large pages
authorIzik Eidus <ieidus@redhat.com>
Wed, 10 Jun 2009 16:23:24 +0000 (19:23 +0300)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 2 Jul 2009 23:49:34 +0000 (16:49 -0700)
commit e244584fe3a5c20deddeca246548ac86dbc6e1d1 upstream.

When slot is already allocated and being asked to be tracked we need
to break the large pages.

This code flush the mmu when someone ask a slot to start dirty bit
tracking.

Signed-off-by: Izik Eidus <ieidus@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
virt/kvm/kvm_main.c

index 9eaba757265007f25a8ad31aaeb7721b8da34850..148982913805d052704b01d9e196d5aaae7c64a3 100644 (file)
@@ -1030,6 +1030,8 @@ int __kvm_set_memory_region(struct kvm *kvm,
                if (!new.dirty_bitmap)
                        goto out_free;
                memset(new.dirty_bitmap, 0, dirty_bytes);
+               if (old.npages)
+                       kvm_arch_flush_shadow(kvm);
        }
 #endif /* not defined CONFIG_S390 */