diff options
author | 2023-09-15 17:39:14 -0700 | |
---|---|---|
committer | 2023-09-21 05:47:57 -0400 | |
commit | 50107e8b2a8a59d8cec7e8454e27c1f8e365acdb (patch) | |
tree | c792c4cbc60de8e0bf8f77a70bbb2fcce3b89746 /arch/x86/kvm/mmu/mmu.c | |
parent | KVM: selftests: Assert that vasprintf() is successful (diff) | |
download | linux-50107e8b2a8a59d8cec7e8454e27c1f8e365acdb.tar.gz linux-50107e8b2a8a59d8cec7e8454e27c1f8e365acdb.tar.bz2 linux-50107e8b2a8a59d8cec7e8454e27c1f8e365acdb.zip |
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>
Diffstat (limited to 'arch/x86/kvm/mmu/mmu.c')
-rw-r--r-- | arch/x86/kvm/mmu/mmu.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c index e1d011c67cc6..59f5e40b8f55 100644 --- a/arch/x86/kvm/mmu/mmu.c +++ b/arch/x86/kvm/mmu/mmu.c @@ -6260,7 +6260,7 @@ void kvm_zap_gfn_range(struct kvm *kvm, gfn_t gfn_start, gfn_t gfn_end) if (tdp_mmu_enabled) { for (i = 0; i < KVM_ADDRESS_SPACE_NUM; i++) flush = kvm_tdp_mmu_zap_leafs(kvm, i, gfn_start, - gfn_end, true, flush); + gfn_end, flush); } if (flush) |