From: Paolo Bonzini Date: Wed, 2 Mar 2022 13:44:22 +0000 (-0500) Subject: KVM: x86/mmu: only perform eager page splitting on valid roots X-Git-Tag: howlett/maple/20220722_2~941^2~36 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=7c554d8e51a9cf5c0a142b4af825d96da67c57fa;p=users%2Fjedix%2Flinux-maple.git KVM: x86/mmu: only perform eager page splitting on valid roots Eager page splitting is an optimization; it does not have to be performed on invalid roots. It is also the only case in which a reader might acquire a reference to an invalid root, so after this change we know that readers will skip both dying and invalid roots. Signed-off-by: Paolo Bonzini --- diff --git a/arch/x86/kvm/mmu/tdp_mmu.c b/arch/x86/kvm/mmu/tdp_mmu.c index 30424fbceb5f..d39593b9ac9e 100644 --- a/arch/x86/kvm/mmu/tdp_mmu.c +++ b/arch/x86/kvm/mmu/tdp_mmu.c @@ -1464,7 +1464,7 @@ void kvm_tdp_mmu_try_split_huge_pages(struct kvm *kvm, kvm_lockdep_assert_mmu_lock_held(kvm, shared); - for_each_tdp_mmu_root_yield_safe(kvm, root, slot->as_id, shared) { + for_each_valid_tdp_mmu_root_yield_safe(kvm, root, slot->as_id, shared) { r = tdp_mmu_split_huge_pages_root(kvm, root, start, end, target_level, shared); if (r) { kvm_tdp_mmu_put_root(kvm, root, shared);