KVM: x86/mmu: Open code leaf invalidation from mmu_notifier
authorSean Christopherson <seanjc@google.com>
Sat, 16 Sep 2023 00:39:14 +0000 (17:39 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 21 Sep 2023 09:47:57 +0000 (05:47 -0400)
commit50107e8b2a8a59d8cec7e8454e27c1f8e365acdb
treec792c4cbc60de8e0bf8f77a70bbb2fcce3b89746
parent7c329bbd3bb87ddb5843853f6e08f97d2f271496
KVM: x86/mmu: Open code leaf invalidation from mmu_notifier

The mmu_notifier path is a bit of a special snowflake, e.g. it zaps only a
single address space (because it's per-slot), and can't always yield.
Because of this, it calls kvm_tdp_mmu_zap_leafs() in ways that no one
else does.

Iterate manually over the leafs in response to an mmu_notifier
invalidation, instead of invoking kvm_tdp_mmu_zap_leafs().  Drop the
@can_yield param from kvm_tdp_mmu_zap_leafs() as its sole remaining
caller unconditionally passes "true".

Cc: stable@vger.kernel.org
Signed-off-by: Sean Christopherson <seanjc@google.com>
Message-Id: <20230916003916.2545000-2-seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/mmu/mmu.c
arch/x86/kvm/mmu/tdp_mmu.c
arch/x86/kvm/mmu/tdp_mmu.h