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

Reply via email to