Skip to content
  • Sean Hefty's avatar
    RDMA/verbs: Cleanup XRC TGT QPs when destroying XRCD · d3d72d90
    Sean Hefty authored
    
    
    XRC TGT QPs are intended to be shared among multiple users and
    processes.  Allow the destruction of an XRC TGT QP to be done explicitly
    through ib_destroy_qp() or when the XRCD is destroyed.
    
    To support destroying an XRC TGT QP, we need to track TGT QPs with the
    XRCD.  When the XRCD is destroyed, all tracked XRC TGT QPs are also
    cleaned up.
    
    To avoid stale reference issues, if a user is holding a reference on a
    TGT QP, we increment a reference count on the QP.  The user releases the
    reference by calling ib_release_qp.  This releases any access to the QP
    from a user above verbs, but allows the QP to continue to exist until
    destroyed by the XRCD.
    
    Signed-off-by: default avatarSean Hefty <sean.hefty@intel.com>
    Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
    d3d72d90