Sean Hefty wrote:
+static void cma_ha_work_handler(struct work_struct *work) +{ + struct rdma_id_private *id_priv; + + id_priv = container_of(work, struct rdma_id_private, ha_work); + rdma_disconnect(&id_priv->id); +}This will race with other user calls. I've found it fairly difficult for the rdma_cm to call back into its own API and avoid racing with the user trying to destroy the cm_id. None of the APIs are coded to allow calling them simultaneously with destroy. A better solution for this may be for the rdma_cm to simply notify the user that the IP mapping for their RDMA device has changed. The user can then disconnect, with the appropriate synchronization, if they want their RDMA connection to follow the IP address. (If I understood correctly, the reason for this is to allow failing back to a repaired port.)
Yes. Move this logic to the ULP, not in the rdma-cm... _______________________________________________ general mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
