Skip to content

Commit 710d485

Browse files
sean-jcbonzini
authored andcommitted
KVM: x86/mmu: Subsume kvm_mmu_unprotect_page() into the and_retry() version
Fold kvm_mmu_unprotect_page() into kvm_mmu_unprotect_gfn_and_retry() now that all other direct usage is gone. No functional change intended. Signed-off-by: Sean Christopherson <[email protected]> Message-ID: <[email protected]> Signed-off-by: Paolo Bonzini <[email protected]>
1 parent 32741ae commit 710d485

File tree

2 files changed

+13
-21
lines changed

2 files changed

+13
-21
lines changed

arch/x86/include/asm/kvm_host.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2135,7 +2135,6 @@ int kvm_get_nr_pending_nmis(struct kvm_vcpu *vcpu);
21352135

21362136
void kvm_update_dr7(struct kvm_vcpu *vcpu);
21372137

2138-
int kvm_mmu_unprotect_page(struct kvm *kvm, gfn_t gfn);
21392138
bool __kvm_mmu_unprotect_gfn_and_retry(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa,
21402139
bool always_retry);
21412140

arch/x86/kvm/mmu/mmu.c

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2713,31 +2713,16 @@ void kvm_mmu_change_mmu_pages(struct kvm *kvm, unsigned long goal_nr_mmu_pages)
27132713
write_unlock(&kvm->mmu_lock);
27142714
}
27152715

2716-
int kvm_mmu_unprotect_page(struct kvm *kvm, gfn_t gfn)
2717-
{
2718-
struct kvm_mmu_page *sp;
2719-
LIST_HEAD(invalid_list);
2720-
int r;
2721-
2722-
r = 0;
2723-
write_lock(&kvm->mmu_lock);
2724-
for_each_gfn_valid_sp_with_gptes(kvm, sp, gfn) {
2725-
r = 1;
2726-
kvm_mmu_prepare_zap_page(kvm, sp, &invalid_list);
2727-
}
2728-
kvm_mmu_commit_zap_page(kvm, &invalid_list);
2729-
write_unlock(&kvm->mmu_lock);
2730-
2731-
return r;
2732-
}
2733-
27342716
bool __kvm_mmu_unprotect_gfn_and_retry(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa,
27352717
bool always_retry)
27362718
{
2719+
struct kvm *kvm = vcpu->kvm;
2720+
LIST_HEAD(invalid_list);
2721+
struct kvm_mmu_page *sp;
27372722
gpa_t gpa = cr2_or_gpa;
27382723
bool r = false;
27392724

2740-
if (!vcpu->kvm->arch.indirect_shadow_pages)
2725+
if (!kvm->arch.indirect_shadow_pages)
27412726
goto out;
27422727

27432728
if (!vcpu->arch.mmu->root_role.direct) {
@@ -2746,7 +2731,15 @@ bool __kvm_mmu_unprotect_gfn_and_retry(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa,
27462731
goto out;
27472732
}
27482733

2749-
r = kvm_mmu_unprotect_page(vcpu->kvm, gpa_to_gfn(gpa));
2734+
r = false;
2735+
write_lock(&kvm->mmu_lock);
2736+
for_each_gfn_valid_sp_with_gptes(kvm, sp, gpa_to_gfn(gpa)) {
2737+
r = true;
2738+
kvm_mmu_prepare_zap_page(kvm, sp, &invalid_list);
2739+
}
2740+
kvm_mmu_commit_zap_page(kvm, &invalid_list);
2741+
write_unlock(&kvm->mmu_lock);
2742+
27502743
out:
27512744
if (r || always_retry) {
27522745
vcpu->arch.last_retry_eip = kvm_rip_read(vcpu);

0 commit comments

Comments
 (0)