|
@@ -796,11 +796,11 @@ int kvm_clear_guest(struct kvm *kvm, gpa_t gpa, unsigned long len)
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(kvm_clear_guest);
|
|
|
|
|
|
-/* WARNING: Does not work on aliased pages. */
|
|
|
void mark_page_dirty(struct kvm *kvm, gfn_t gfn)
|
|
|
{
|
|
|
struct kvm_memory_slot *memslot;
|
|
|
|
|
|
+ gfn = unalias_gfn(kvm, gfn);
|
|
|
memslot = __gfn_to_memslot(kvm, gfn);
|
|
|
if (memslot && memslot->dirty_bitmap) {
|
|
|
unsigned long rel_gfn = gfn - memslot->base_gfn;
|