Michael S. Tsirkin wrote:
Apparently, if I call rdma_destroy_id after I called rdma_resolve_addr
but before the address was resolved, the device pointer is NULL.
As a result, cma_cancel_addr then crashes when trying to get the device type.

You should be able to call rdma_destroy_id at anytime, so it does sound like there's a bug here.

There is something else I'd like a clarification on: rdma_destroy_id
only starts the destroy process, asynchronously. What is the best way
to know the process has finished? Also, when is it safe to call rdma_destroy_qp?

Once rdma_destroy_id returns, the destruction is considered complete by the user. You must call rdma_destroy_qp() and release all resources associated with a specific device before calling rdma_destroy_id() for device removal to be handled properly.

Since we always start address resolution with rdma_resolve_ip, we should
always cancel it with rdma_addr_cancel - we can't switch on device type
since we don't yet know what device we will use.

Thanks - I'll look over the patch.

- 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