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
