Arne Redlich wrote: > @@ -1354,6 +1354,7 @@ static int cm_req_handler(struct cm_work > id.local_id); > if (IS_ERR(cm_id_priv->timewait_info)) { > ret = PTR_ERR(cm_id_priv->timewait_info); > + reject = 1; > goto error1; > }
An error here indicates that we were unable to allocate memory to record the incoming connection request. I didn't send a reject in this case to allow it to be retried. (The chances of being able to send a reject if this allocation fails is unlikely.) If there's a need to send a reject in this case, we should call cm_issue_rej(). I don't think that we can send one from cm_destroy_id() unless the cm_id has been initialized further. > @@ -1373,12 +1375,21 @@ static int cm_req_handler(struct cm_work > > cm_format_paths_from_req(req_msg, &work->path[0], &work->path[1]); > ret = cm_init_av_by_path(&work->path[0], &cm_id_priv->av); > - if (ret) > + if (ret) { > + cm_issue_rej(work->port, work->mad_recv_wc, IB_CM_INVALID_GID, > + CM_MSG_RESPONSE_REQ, NULL, 0); Change to IB_CM_REJ_INVALID_GID. > + reject = 0; > goto error3; > + } > if (req_msg->alt_local_lid) { > ret = cm_init_av_by_path(&work->path[1], &cm_id_priv->alt_av); > - if (ret) > + if (ret) { > + cm_issue_rej(work->port, work->mad_recv_wc, > + IB_CM_INVALID_ALT_GID, CM_MSG_RESPONSE_REQ, > + NULL, 0); IB_CM_REJ_INVALID_ALT_GID. - Sean _______________________________________________ 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