James Lentini wrote:
/* ... here */

          if (cm_id) {
                  if (cm_id->qp)
                          rdma_destroy_qp(cm_id);
                  rdma_destroy_id(cm_id);
          }
          dapl_os_free(conn, sizeof(*conn));
  }

Destroying the cm_id while in a callback would be bad.

rdma_destroy_id() will block if a callback is in progress. The issue is making sure that this routine is not called from the callback thread.

There shouldn't be any issue calling rdma_destroy_qp() regardless of if we're in a callback or not though. So, the fix may be to always call rdma_destroy_qp() somewhere in this call path.

- Sean
_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to