@@ -1103,14 +1103,17 @@ static int mmu_topup_memory_caches(struct kvm_vcpu *vcpu)
{
int r;
+ /* 1 rmap, 1 parent PTE per level, and the prefetched rmaps. */
r = mmu_topup_memory_cache(&vcpu->arch.mmu_pte_list_desc_cache,
- 8 + PTE_PREFETCH_NUM);
+ 1 + PT64_ROOT_MAX_LEVEL + PTE_PREFETCH_NUM);
if (r)
return r;
- r = mmu_topup_memory_cache(&vcpu->arch.mmu_page_cache, 8);
+ r = mmu_topup_memory_cache(&vcpu->arch.mmu_page_cache,
+ 2 * PT64_ROOT_MAX_LEVEL);
if (r)
return r;
- return mmu_topup_memory_cache(&vcpu->arch.mmu_page_header_cache, 4);
+ return mmu_topup_memory_cache(&vcpu->arch.mmu_page_header_cache,
+ PT64_ROOT_MAX_LEVEL);
}
static void mmu_free_memory_caches(struct kvm_vcpu *vcpu)