iw_cxgb4: pass the ord/ird in connect reply events
authorHariprasad S <hariprasad@chelsio.com>
Tue, 8 Sep 2015 04:26:58 +0000 (09:56 +0530)
committerDoug Ledford <dledford@redhat.com>
Wed, 21 Oct 2015 21:16:10 +0000 (17:16 -0400)
This allows client ULPs to get the negotiated ord/ird which is useful
to avoid stalling the SQ due to exceeding the ORD.

Signed-off-by: Hariprasad Shenai <hariprasad@chelsio.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/cxgb4/cm.c

index 24efe52f1d68c9019b9701ebfdd893d5ff67c00c..a6aae913850c72deab08c80511d8ceefb9a53f86 100644 (file)
@@ -1196,6 +1196,8 @@ static void connect_reply_upcall(struct c4iw_ep *ep, int status)
        if ((status == 0) || (status == -ECONNREFUSED)) {
                if (!ep->tried_with_mpa_v1) {
                        /* this means MPA_v2 is used */
+                       event.ord = ep->ird;
+                       event.ird = ep->ord;
                        event.private_data_len = ep->plen -
                                sizeof(struct mpa_v2_conn_params);
                        event.private_data = ep->mpa_pkt +
@@ -1203,6 +1205,8 @@ static void connect_reply_upcall(struct c4iw_ep *ep, int status)
                                sizeof(struct mpa_v2_conn_params);
                } else {
                        /* this means MPA_v1 is used */
+                       event.ord = cur_max_read_depth(ep->com.dev);
+                       event.ird = cur_max_read_depth(ep->com.dev);
                        event.private_data_len = ep->plen;
                        event.private_data = ep->mpa_pkt +
                                sizeof(struct mpa_message);