KVM: MMU: fix huge page adapted on non-PAE host
authorXiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
Mon, 28 May 2012 06:10:43 +0000 (14:10 +0800)
committerAvi Kivity <avi@redhat.com>
Mon, 28 May 2012 14:41:15 +0000 (17:41 +0300)
The huge page size is 4M on non-PAE host, but 2M page size is used in
transparent_hugepage_adjust(), so the page we get after adjust the
mapping level is not the head page, the BUG_ON() will be triggered

Signed-off-by: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
arch/x86/kvm/mmu.c

index 72102e0..be3cea4 100644 (file)
@@ -2595,8 +2595,7 @@ static void transparent_hugepage_adjust(struct kvm_vcpu *vcpu,
                        *gfnp = gfn;
                        kvm_release_pfn_clean(pfn);
                        pfn &= ~mask;
-                       if (!get_page_unless_zero(pfn_to_page(pfn)))
-                               BUG();
+                       kvm_get_pfn(pfn);
                        *pfnp = pfn;
                }
        }