Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4d9976bb authored by Joerg Roedel's avatar Joerg Roedel Committed by Avi Kivity
Browse files

KVM: MMU: make the __nonpaging_map function generic



The mapping function for the nonpaging case in the softmmu does basically the
same as required for Nested Paging. Make this function generic so it can be
used for both.

Signed-off-by: default avatarJoerg Roedel <joerg.roedel@amd.com>
Signed-off-by: default avatarAvi Kivity <avi@qumranet.com>
parent 18552672
Loading
Loading
Loading
Loading
+3 −4
Original line number Original line Diff line number Diff line
@@ -979,10 +979,9 @@ static void nonpaging_new_cr3(struct kvm_vcpu *vcpu)
{
{
}
}


static int __nonpaging_map(struct kvm_vcpu *vcpu, gva_t v, int write,
static int __direct_map(struct kvm_vcpu *vcpu, gpa_t v, int write,
			   gfn_t gfn, struct page *page)
			   gfn_t gfn, struct page *page, int level)
{
{
	int level = PT32E_ROOT_LEVEL;
	hpa_t table_addr = vcpu->arch.mmu.root_hpa;
	hpa_t table_addr = vcpu->arch.mmu.root_hpa;
	int pt_write = 0;
	int pt_write = 0;


@@ -1042,7 +1041,7 @@ static int nonpaging_map(struct kvm_vcpu *vcpu, gva_t v, int write, gfn_t gfn)


	spin_lock(&vcpu->kvm->mmu_lock);
	spin_lock(&vcpu->kvm->mmu_lock);
	kvm_mmu_free_some_pages(vcpu);
	kvm_mmu_free_some_pages(vcpu);
	r = __nonpaging_map(vcpu, v, write, gfn, page);
	r = __direct_map(vcpu, v, write, gfn, page, PT32E_ROOT_LEVEL);
	spin_unlock(&vcpu->kvm->mmu_lock);
	spin_unlock(&vcpu->kvm->mmu_lock);


	up_read(&vcpu->kvm->slots_lock);
	up_read(&vcpu->kvm->slots_lock);