Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7e9d619d2aa28b71d547edfa15c66d6ab9a3a39c
Commit:     7e9d619d2aa28b71d547edfa15c66d6ab9a3a39c
Parent:     fb764416492a1204c20fdf4507019012d27bd1a2
Author:     Rusty Russell <[EMAIL PROTECTED]>
AuthorDate: Tue Jul 31 20:41:14 2007 +1000
Committer:  Avi Kivity <[EMAIL PROTECTED]>
CommitDate: Sat Oct 13 10:18:22 2007 +0200

    KVM: Cleanup mark_page_dirty
    
    For some reason, mark_page_dirty open-codes __gfn_to_memslot().
    
    Signed-off-by: Rusty Russell <[EMAIL PROTECTED]>
    Signed-off-by: Avi Kivity <[EMAIL PROTECTED]>
---
 drivers/kvm/kvm_main.c |   24 +++++++-----------------
 1 files changed, 7 insertions(+), 17 deletions(-)

diff --git a/drivers/kvm/kvm_main.c b/drivers/kvm/kvm_main.c
index 5dc6017..55639ac 100644
--- a/drivers/kvm/kvm_main.c
+++ b/drivers/kvm/kvm_main.c
@@ -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);
        }
 }
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to