The following patch should set the reject code properly when
rejecting a request that contains an invalid GID.  A suitable
GID is returned by the IB CM in the additional reject information
(ARI).

Signed-off-by: Sean Hefty <[EMAIL PROTECTED]>
---
Index: cm.c
===================================================================
--- cm.c        (revision 8484)
+++ cm.c        (working copy)
@@ -1372,12 +1372,23 @@ 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) {
+               ib_get_cached_gid(work->port->cm_dev->device,
+                                 work->port->port_num, 0, &work->path[0].sgid);
+               cm_issue_rej(work->port, work->mad_recv_wc,
+                            IB_CM_REJ_INVALID_GID, CM_MSG_RESPONSE_REQ,
+                            &work->path[0].sgid, sizeof work->path[0].sgid);
                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_REJ_INVALID_ALT_GID,
+                                    CM_MSG_RESPONSE_REQ, &work->path[0].sgid,
+                                    sizeof work->path[0].sgid);
                        goto error3;
+               }
        }
        cm_id_priv->tid = req_msg->hdr.tid;
        cm_id_priv->timeout_ms = cm_convert_to_ms(


_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to