aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband
diff options
context:
space:
mode:
authorSteve Wise <swise@opengridcomputing.com>2007-10-29 12:34:05 -0400
committerRoland Dreier <rolandd@cisco.com>2008-01-25 17:15:25 -0500
commit8d8293cfb38b042835eeded7c1d90f75ca243e87 (patch)
treeeffb8294cf1792bdb9bc5e6c94342cf6f1950e97 /drivers/infiniband
parente193e3326c521eea6a0221e945627ae5e3274910 (diff)
RDMA/iwcm: Set initiator depth and responder resources to device max values
Set the initiator depth and responder resources to the device max values for new connect request events in the iWARP connection manager. Signed-off-by: Steve Wise <swise@opengridcomputing.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r--drivers/infiniband/core/cma.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 0751697ef984..5a80e74731c8 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -1262,6 +1262,7 @@ static int iw_conn_req_handler(struct iw_cm_id *cm_id,
1262 struct net_device *dev = NULL; 1262 struct net_device *dev = NULL;
1263 struct rdma_cm_event event; 1263 struct rdma_cm_event event;
1264 int ret; 1264 int ret;
1265 struct ib_device_attr attr;
1265 1266
1266 listen_id = cm_id->context; 1267 listen_id = cm_id->context;
1267 if (cma_disable_remove(listen_id, CMA_LISTEN)) 1268 if (cma_disable_remove(listen_id, CMA_LISTEN))
@@ -1311,10 +1312,19 @@ static int iw_conn_req_handler(struct iw_cm_id *cm_id,
1311 sin = (struct sockaddr_in *) &new_cm_id->route.addr.dst_addr; 1312 sin = (struct sockaddr_in *) &new_cm_id->route.addr.dst_addr;
1312 *sin = iw_event->remote_addr; 1313 *sin = iw_event->remote_addr;
1313 1314
1315 ret = ib_query_device(conn_id->id.device, &attr);
1316 if (ret) {
1317 cma_enable_remove(conn_id);
1318 rdma_destroy_id(new_cm_id);
1319 goto out;
1320 }
1321
1314 memset(&event, 0, sizeof event); 1322 memset(&event, 0, sizeof event);
1315 event.event = RDMA_CM_EVENT_CONNECT_REQUEST; 1323 event.event = RDMA_CM_EVENT_CONNECT_REQUEST;
1316 event.param.conn.private_data = iw_event->private_data; 1324 event.param.conn.private_data = iw_event->private_data;
1317 event.param.conn.private_data_len = iw_event->private_data_len; 1325 event.param.conn.private_data_len = iw_event->private_data_len;
1326 event.param.conn.initiator_depth = attr.max_qp_init_rd_atom;
1327 event.param.conn.responder_resources = attr.max_qp_rd_atom;
1318 ret = conn_id->id.event_handler(&conn_id->id, &event); 1328 ret = conn_id->id.event_handler(&conn_id->id, &event);
1319 if (ret) { 1329 if (ret) {
1320 /* User wants to destroy the CM ID */ 1330 /* User wants to destroy the CM ID */