Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 68379
b: refs/heads/master
c: 7e9d619
h: refs/heads/master
i:
  68377: c1ddb5e
  68375: 2d0b688
v: v3
  • Loading branch information
Rusty Russell authored and Avi Kivity committed Oct 13, 2007
1 parent 595c8b3 commit eef1ceb
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 18 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: fb764416492a1204c20fdf4507019012d27bd1a2
refs/heads/master: 7e9d619d2aa28b71d547edfa15c66d6ab9a3a39c
24 changes: 7 additions & 17 deletions trunk/drivers/kvm/kvm_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -916,28 +916,18 @@ struct page *gfn_to_page(struct kvm *kvm, gfn_t gfn)
}
EXPORT_SYMBOL_GPL(gfn_to_page);

/* WARNING: Does not work on aliased pages. */
void mark_page_dirty(struct kvm *kvm, gfn_t gfn)
{
int i;
struct kvm_memory_slot *memslot;
unsigned long rel_gfn;

for (i = 0; i < kvm->nmemslots; ++i) {
memslot = &kvm->memslots[i];
memslot = __gfn_to_memslot(kvm, gfn);
if (memslot && memslot->dirty_bitmap) {
unsigned long rel_gfn = gfn - memslot->base_gfn;

if (gfn >= memslot->base_gfn
&& gfn < memslot->base_gfn + memslot->npages) {

if (!memslot->dirty_bitmap)
return;

rel_gfn = gfn - memslot->base_gfn;

/* avoid RMW */
if (!test_bit(rel_gfn, memslot->dirty_bitmap))
set_bit(rel_gfn, memslot->dirty_bitmap);
return;
}
/* avoid RMW */
if (!test_bit(rel_gfn, memslot->dirty_bitmap))
set_bit(rel_gfn, memslot->dirty_bitmap);
}
}

Expand Down

0 comments on commit eef1ceb

Please sign in to comment.