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

Reply via email to