Tom Tucker wrote:
Enclosed is a combined include file and core patch for iWARP support in CMA. This patch includes changes per your last review.
I applied the portion of your patch that modifies the CMA to use a union to store the underlying cm_id's, with a couple of changes - see below.
I haven't seen anyone object to merging the other changes. Roland, Hal - any opinion?
- Sean
@@ -624,9 +676,20 @@ state = cma_exch(id_priv, CMA_DESTROYING); cma_cancel_operation(id_priv, state);- if (id_priv->cm_id && !IS_ERR(id_priv->cm_id))- ib_destroy_cm_id(id_priv->cm_id); + if (id_priv->cm_id.ib && !IS_ERR(id_priv->cm_id.ib)) {+ switch (id->device->node_type) {+ case IB_NODE_RNIC: + iw_destroy_cm_id(id_priv->cm_id.iw); + break; + default: + ib_destroy_cm_id(id_priv->cm_id.ib); + break; + } + + id_priv->cm_id.ib = NULL; + } + if (id_priv->cma_dev) { down(&mutex); cma_detach_from_dev(id_priv);
I rearranged this to check for a cma_dev first, then switch on the node type. We'll never have a cm_id if a device hasn't been assigned. This allows us to check the correct union member.
_______________________________________________ openib-general mailing list [email protected] http://openib.org/mailman/listinfo/openib-general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
