• P
    KVM: x86/mmu: do not allow readers to acquire references to invalid roots · 614f6970
    Paolo Bonzini 提交于
    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: NPaolo Bonzini <pbonzini@redhat.com>
    614f6970
tdp_mmu.c 51.2 KB