|
@@ -609,35 +609,6 @@ hpa_t gva_to_hpa(struct kvm_vcpu *vcpu, gva_t gva)
|
|
|
return gpa_to_hpa(vcpu, gpa);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-static void release_pt_page_64(struct kvm_vcpu *vcpu, hpa_t page_hpa,
|
|
|
- int level)
|
|
|
-{
|
|
|
- u64 *pos;
|
|
|
- u64 *end;
|
|
|
-
|
|
|
- ASSERT(vcpu);
|
|
|
- ASSERT(VALID_PAGE(page_hpa));
|
|
|
- ASSERT(level <= PT64_ROOT_LEVEL && level > 0);
|
|
|
-
|
|
|
- for (pos = __va(page_hpa), end = pos + PT64_ENT_PER_PAGE;
|
|
|
- pos != end; pos++) {
|
|
|
- u64 current_ent = *pos;
|
|
|
-
|
|
|
- if (is_present_pte(current_ent)) {
|
|
|
- if (level != 1)
|
|
|
- release_pt_page_64(vcpu,
|
|
|
- current_ent &
|
|
|
- PT64_BASE_ADDR_MASK,
|
|
|
- level - 1);
|
|
|
- else
|
|
|
- rmap_remove(vcpu->kvm, pos);
|
|
|
- }
|
|
|
- *pos = 0;
|
|
|
- }
|
|
|
- kvm_mmu_free_page(vcpu, page_hpa);
|
|
|
-}
|
|
|
-
|
|
|
static void nonpaging_new_cr3(struct kvm_vcpu *vcpu)
|
|
|
{
|
|
|
}
|