Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b238f7bc2dd5e0e8ecbd28863d6d03e490c652ce
Commit:     b238f7bc2dd5e0e8ecbd28863d6d03e490c652ce
Parent:     d835dfecd00fd770288dcd9a46c0e0966d526fdf
Author:     Izik Eidus <[EMAIL PROTECTED]>
AuthorDate: Tue Nov 20 12:02:12 2007 +0200
Committer:  Avi Kivity <[EMAIL PROTECTED]>
CommitDate: Wed Jan 30 17:53:10 2008 +0200

    KVM: MMU: Code cleanup
    
    Signed-off-by: Izik Eidus <[EMAIL PROTECTED]>
    Signed-off-by: Avi Kivity <[EMAIL PROTECTED]>
---
 drivers/kvm/paging_tmpl.h |   20 ++++++++++----------
 1 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/kvm/paging_tmpl.h b/drivers/kvm/paging_tmpl.h
index 92b9313..6e01301 100644
--- a/drivers/kvm/paging_tmpl.h
+++ b/drivers/kvm/paging_tmpl.h
@@ -187,6 +187,7 @@ static void FNAME(set_pte_common)(struct kvm_vcpu *vcpu,
        int dirty = gpte & PT_DIRTY_MASK;
        u64 spte;
        int was_rmapped = is_rmap_pte(*shadow_pte);
+       struct page *page;
 
        pgprintk("%s: spte %llx gpte %llx access %llx write_fault %d"
                 " user_fault %d gfn %lx\n",
@@ -205,6 +206,12 @@ static void FNAME(set_pte_common)(struct kvm_vcpu *vcpu,
 
        paddr = gpa_to_hpa(vcpu->kvm, gaddr & PT64_BASE_ADDR_MASK);
 
+       /*
+        * the reason paddr get mask even that it isnt pte is beacuse the
+        * HPA_ERR_MASK bit might be used to signal error
+        */
+       page = pfn_to_page((paddr & PT64_BASE_ADDR_MASK) >> PAGE_SHIFT);
+
        spte |= PT_PRESENT_MASK;
        if (access_bits & PT_USER_MASK)
                spte |= PT_USER_MASK;
@@ -212,8 +219,7 @@ static void FNAME(set_pte_common)(struct kvm_vcpu *vcpu,
        if (is_error_hpa(paddr)) {
                set_shadow_pte(shadow_pte,
                               shadow_trap_nonpresent_pte | PT_SHADOW_IO_MARK);
-               kvm_release_page_clean(pfn_to_page((paddr & PT64_BASE_ADDR_MASK)
-                                      >> PAGE_SHIFT));
+               kvm_release_page_clean(page);
                return;
        }
 
@@ -254,17 +260,11 @@ unshadowed:
        if (!was_rmapped) {
                rmap_add(vcpu, shadow_pte, (gaddr & PT64_BASE_ADDR_MASK)
                         >> PAGE_SHIFT);
-               if (!is_rmap_pte(*shadow_pte)) {
-                       struct page *page;
-
-                       page = pfn_to_page((paddr & PT64_BASE_ADDR_MASK)
-                                          >> PAGE_SHIFT);
+               if (!is_rmap_pte(*shadow_pte))
                        kvm_release_page_clean(page);
-               }
        }
        else
-               kvm_release_page_clean(pfn_to_page((paddr & PT64_BASE_ADDR_MASK)
-                                      >> PAGE_SHIFT));
+               kvm_release_page_clean(page);
        if (!ptwrite || !*ptwrite)
                vcpu->last_pte_updated = shadow_pte;
 }
-
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