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
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general
To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general