From: Sean Christopherson <seanjc@xxxxxxxxxx> commit 83b83a02073ec8d18c77a9bbe0881d710f7a9d32 upstream. Use the common TDP MMU zap helper when handling an MMU notifier unmap event, the two flows are semantically identical. Consolidate the code in preparation for a future bug fix, as both kvm_tdp_mmu_unmap_gfn_range() and __kvm_tdp_mmu_zap_gfn_range() are guilty of not zapping SPTEs in invalid roots. No functional change intended. Cc: stable@xxxxxxxxxxxxxxx Signed-off-by: Sean Christopherson <seanjc@xxxxxxxxxx> Message-Id: <20211215011557.399940-2-seanjc@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- arch/x86/kvm/mmu/tdp_mmu.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) --- a/arch/x86/kvm/mmu/tdp_mmu.c +++ b/arch/x86/kvm/mmu/tdp_mmu.c @@ -1032,13 +1032,8 @@ int kvm_tdp_mmu_map(struct kvm_vcpu *vcp bool kvm_tdp_mmu_unmap_gfn_range(struct kvm *kvm, struct kvm_gfn_range *range, bool flush) { - struct kvm_mmu_page *root; - - for_each_tdp_mmu_root_yield_safe(kvm, root, range->slot->as_id, false) - flush = zap_gfn_range(kvm, root, range->start, range->end, - range->may_block, flush, false); - - return flush; + return __kvm_tdp_mmu_zap_gfn_range(kvm, range->slot->as_id, range->start, + range->end, range->may_block, flush); } typedef bool (*tdp_handler_t)(struct kvm *kvm, struct tdp_iter *iter, Patches currently in stable-queue which might be from seanjc@xxxxxxxxxx are queue-5.16/kvm-x86-mmu-zap-_all_-roots-when-unmapping-gfn-range-in-tdp-mmu.patch queue-5.16/kvm-x86-mmu-check-for-present-spte-when-clearing-dirty-bit-in-tdp-mmu.patch queue-5.16/kvm-x86-emulator-defer-not-present-segment-check-in-.patch queue-5.16/kvm-x86-mmu-use-common-tdp-mmu-zap-helper-for-mmu-notifier-unmap-hook.patch queue-5.16/kvm-svm-exit-to-userspace-on-enomem-efault-ghcb-erro.patch queue-5.16/kvm-x86-reinitialize-context-if-host-userspace-toggles-efer.lme.patch queue-5.16/kvm-x86-fix-emulation-in-writing-cr8.patch queue-5.16/kvm-x86-mmu-move-invalid-check-out-of-kvm_tdp_mmu_get_root.patch