]> git.openfabrics.org - ~shefty/rdma-win.git/commitdiff
refresh (create temporary patch)
authorSean Hefty <sean.hefty@intel.com>
Sat, 14 Aug 2010 00:41:41 +0000 (17:41 -0700)
committerSean Hefty <sean.hefty@intel.com>
Sat, 14 Aug 2010 00:41:41 +0000 (17:41 -0700)
meta
patches/refresh-temp [new file with mode: 0644]

diff --git a/meta b/meta
index e275a246e7c2ff18df5a7fb0e69b242a3dce8fb3..4e66f9c40c7f8410ba0f3aaec955ab171b6a767d 100644 (file)
--- a/meta
+++ b/meta
@@ -1,12 +1,13 @@
 Version: 1
-Previous: 2a17eb61db8d32a8ff7959b05388709f85214cdc
-Head: caf34aebed386da0cf8d7aabcc486dc0d05c5796
+Previous: 0a3272bf814b6f502b445260fc3729240f85070a
+Head: c327812680c5edc2d594da4446a133306419771b
 Applied:
   sync: 452ce3b051e10e10363baa77834962a89267e052
   pre-af-ib: 73504ef1f812bea6d1fd59f194f90e5194ca2efa
   opt-pd: 408a5b12070039ac95d02f07c04a07d681859a89
   opt-cq: eb08384598a3829b40cc525aa2871e4e96817507
   max-rdma: caf34aebed386da0cf8d7aabcc486dc0d05c5796
+  refresh-temp: c327812680c5edc2d594da4446a133306419771b
 Unapplied:
   cq-status: d4535a68c8d41302c9ee9d44b98a75ea19b4f172
   wv-rm-ioctl: 2c4f8b27f89993bc9c1215e8c358046b2934f755
diff --git a/patches/refresh-temp b/patches/refresh-temp
new file mode 100644 (file)
index 0000000..5a223fd
--- /dev/null
@@ -0,0 +1,112 @@
+Bottom: 8cf40079eee667ce77d40e89ceda72843734dba8
+Top:    a112d61591167592063eaca83d29cb8d0f18d350
+Author: Sean Hefty <sean.hefty@intel.com>
+Date:   2010-08-13 17:41:38 -0700
+
+Refresh of max-rdma
+
+---
+
+diff --git a/trunk/ulp/librdmacm/include/rdma/rdma_cma.h b/trunk/ulp/librdmacm/include/rdma/rdma_cma.h
+index 16f7f21..294a75b 100644
+--- a/trunk/ulp/librdmacm/include/rdma/rdma_cma.h
++++ b/trunk/ulp/librdmacm/include/rdma/rdma_cma.h
+@@ -146,6 +146,11 @@ struct rdma_cm_id
+       struct ibv_cq                           *recv_cq;\r
+ };\r
\r
++enum {\r
++      RDMA_MAX_RESP_RES = 0xFF,\r
++      RDMA_MAX_INIT_DEPTH = 0xFF\r
++};\r
++\r
+ struct rdma_conn_param\r
+ {\r
+       const void *private_data;\r
+diff --git a/trunk/ulp/librdmacm/src/cma.cpp b/trunk/ulp/librdmacm/src/cma.cpp
+index 0d6e6f5..d8ba0be 100644
+--- a/trunk/ulp/librdmacm/src/cma.cpp
++++ b/trunk/ulp/librdmacm/src/cma.cpp
+@@ -74,6 +74,8 @@ struct cma_id_private
+       int                                                     index;\r
+       volatile LONG                           refcnt;\r
+       struct rdma_cm_id                       **req_list;\r
++      uint8_t                                         initiator_depth;\r
++      uint8_t                                         responder_resources;\r
+ };\r
\r
+ struct cma_device\r
+@@ -737,15 +739,19 @@ void rdma_destroy_qp(struct rdma_cm_id *id)
+ }\r
\r
+ static int ucma_valid_param(struct cma_id_private *id_priv,\r
+-                                                      struct rdma_conn_param *conn_param)\r
++                                                      struct rdma_conn_param *param)\r
+ {\r
+       if (id_priv->id.ps != RDMA_PS_TCP) {\r
+               return 0;\r
+       }\r
\r
+-      if ((conn_param->responder_resources > id_priv->cma_dev->max_responder_resources) ||\r
+-              (conn_param->initiator_depth > id_priv->cma_dev->max_initiator_depth)) {\r
+-              return -1;\r
++      if ((param->responder_resources != RDMA_MAX_RESP_RES) &&\r
++              (param->responder_resources > id_priv->cma_dev->max_responder_resources)) {\r
++              return rdma_seterrno(EINVAL);\r
++              \r
++      if ((param->initiator_depth != RDMA_MAX_INIT_DEPTH) &&\r
++              (param->initiator_depth > id_priv->cma_dev->max_initiator_depth)) {\r
++              return rdma_seterrno(EINVAL);\r
+       }\r
\r
+       return 0;\r
+@@ -765,9 +771,14 @@ int rdma_connect(struct rdma_cm_id *id, struct rdma_conn_param *conn_param)
+               return ret;\r
+       }\r
\r
++      id_priv->responder_resources = min(conn_param->responder_resources,\r
++                                                                         id_priv->cma_dev->responder_resources);\r
++      id_priv->initiator_depth = min(conn_param->initiator_depth,\r
++                                                                 id_priv->cma_dev->initiator_depth);\r
++\r
+       RtlZeroMemory(&attr, sizeof attr);\r
+-      attr.ResponderResources = conn_param->responder_resources;\r
+-      attr.InitiatorDepth = conn_param->initiator_depth;\r
++      attr.ResponderResources = id_priv->responder_resources;\r
++      attr.InitiatorDepth = id_priv->initiator_depth;\r
+       attr.RetryCount = conn_param->retry_count;\r
+       attr.RnrRetryCount = conn_param->rnr_retry_count;\r
+       if ((attr.DataLength = conn_param->private_data_len)) {\r
+@@ -892,9 +903,22 @@ int rdma_accept(struct rdma_cm_id *id, struct rdma_conn_param *conn_param)
+               return ret;\r
+       }\r
\r
++      if (conn_param->initiator_depth == RDMA_MAX_INIT_DEPTH) {\r
++              id_priv->initiator_depth = min(id_priv->initiator_depth,\r
++                                                                         id_priv->cma_dev->max_initiator_depth);\r
++      } else {\r
++              id_priv->initiator_depth = conn_param->initiator_depth;\r
++      }\r
++      if (conn_param->responder_resources == RDMA_MAX_RESP_RES) {\r
++              id_priv->responder_resources = min(id_priv->responder_resources,\r
++                                                                                 id_priv->cma_dev->max_responder_resources);\r
++      } else {\r
++              id_priv->responder_resources = conn_param->responder_resources;\r
++      }\r
++\r
+       RtlZeroMemory(&attr, sizeof attr);\r
+-      attr.ResponderResources = conn_param->responder_resources;\r
+-      attr.InitiatorDepth = conn_param->initiator_depth;\r
++      attr.ResponderResources = id_priv->responder_resources;\r
++      attr.InitiatorDepth = id_priv->initiator_depth;\r
+       attr.RetryCount = conn_param->retry_count;\r
+       attr.RnrRetryCount = conn_param->rnr_retry_count;\r
+       if ((attr.DataLength = conn_param->private_data_len)) {\r
+@@ -1004,6 +1028,8 @@ static int ucma_process_conn_req(struct cma_event *event)
+       event->event.event = RDMA_CM_EVENT_CONNECT_REQUEST;\r
+       id_priv->state = cma_passive_connect;\r
+       event->event.listen_id = &listen->id;\r
++      id_priv->initiator_depth = event->event.param.conn.initiator_depth;\r
++      id_priv->responder_resources = event->event.param.conn.responder_resources;\r
\r
+       return 0;