[openib-general] [PATCH] rdma_cm oops: rdma_destroy_id

Sean Hefty mshefty at ichips.intel.com
Wed Mar 15 09:45:55 PST 2006


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



More information about the general mailing list