On Thu, Mar 03, 2022, Paolo Bonzini wrote: > Remove the "shared" argument of for_each_tdp_mmu_root_yield_safe, thus ensuring > that readers do not ever acquire a reference to an invalid root. After this > patch, all readers except kvm_tdp_mmu_zap_invalidated_roots() treat > refcount=0/valid, refcount=0/invalid and refcount=1/invalid in exactly the > same way. kvm_tdp_mmu_zap_invalidated_roots() is different but it also > does not acquire a reference to the invalid root, and it cannot see > refcount=0/invalid because it is guaranteed to run after > kvm_tdp_mmu_invalidate_all_roots(). > > Opportunistically add a lockdep assertion to the yield-safe iterator. > > Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> > --- Reviewed-by: Sean Christopherson <seanjc@xxxxxxxxxx>