OSDN Git Service

KVM: MMU: Clean up BUG_ON() conditions in rmap_write_protect()
authorTakuya Yoshikawa <yoshikawa.takuya@oss.ntt.co.jp>
Mon, 14 Nov 2011 09:21:34 +0000 (18:21 +0900)
committerAvi Kivity <avi@redhat.com>
Tue, 27 Dec 2011 09:17:13 +0000 (11:17 +0200)
Remove redundant checks and use is_large_pte() macro.

Signed-off-by: Takuya Yoshikawa <yoshikawa.takuya@oss.ntt.co.jp>
Signed-off-by: Avi Kivity <avi@redhat.com>
arch/x86/kvm/mmu.c

index a9b3a32..973f254 100644 (file)
@@ -1027,7 +1027,6 @@ static int rmap_write_protect(struct kvm *kvm, u64 gfn)
 
        spte = rmap_next(kvm, rmapp, NULL);
        while (spte) {
-               BUG_ON(!spte);
                BUG_ON(!(*spte & PT_PRESENT_MASK));
                rmap_printk("rmap_write_protect: spte %p %llx\n", spte, *spte);
                if (is_writable_pte(*spte)) {
@@ -1043,9 +1042,8 @@ static int rmap_write_protect(struct kvm *kvm, u64 gfn)
                rmapp = gfn_to_rmap(kvm, gfn, i);
                spte = rmap_next(kvm, rmapp, NULL);
                while (spte) {
-                       BUG_ON(!spte);
                        BUG_ON(!(*spte & PT_PRESENT_MASK));
-                       BUG_ON((*spte & (PT_PAGE_SIZE_MASK|PT_PRESENT_MASK)) != (PT_PAGE_SIZE_MASK|PT_PRESENT_MASK));
+                       BUG_ON(!is_large_pte(*spte));
                        pgprintk("rmap_write_protect(large): spte %p %llx %lld\n", spte, *spte, gfn);
                        if (is_writable_pte(*spte)) {
                                drop_spte(kvm, spte);