Am Dienstag, den 18.07.2006, 10:09 -0700 schrieb Sean Hefty:
> 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.

This was merely to initialize "reject" (=> "err = 0" using the old
code), otherwise preserving the original behaviour.

> > @@ -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.

Of course. I really don't know where my mind was when submitting this
apparently half baked patch instead of the final version which gets (at
least) this one right and also doesn't have the "if - else - else"
oddity pointed out by Michael. Sorry.

Thanks,
Arne
-- 
Arne Redlich
Xiranet Communications GmbH


_______________________________________________
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