diff options
author | Kumar Sanghvi <kumaras@chelsio.com> | 2011-09-25 10:47:43 -0400 |
---|---|---|
committer | Roland Dreier <roland@purestorage.com> | 2011-10-06 12:37:52 -0400 |
commit | 3ebeebc38b4b13384aba97f2e4acd6b48d47a65c (patch) | |
tree | 27e9ea5dc563bbddced650fb32fc78149c074665 | |
parent | 9595480c5dd1f01e477e8c993d6b24fa484eca3f (diff) |
RDMA/iwcm: Propagate ird/ord values upwards
Update struct iw_cm_event to support propagating the ird/ord values
upwards to the application.
Signed-off-by: Kumar Sanghvi <kumaras@chelsio.com>
Reviewed-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
-rw-r--r-- | drivers/infiniband/core/cma.c | 8 | ||||
-rw-r--r-- | include/rdma/iw_cm.h | 4 |
2 files changed, 9 insertions, 3 deletions
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c index 31d958e2c9ec..3e7104554597 100644 --- a/drivers/infiniband/core/cma.c +++ b/drivers/infiniband/core/cma.c | |||
@@ -1340,6 +1340,8 @@ static int cma_iw_handler(struct iw_cm_id *iw_id, struct iw_cm_event *iw_event) | |||
1340 | switch (iw_event->status) { | 1340 | switch (iw_event->status) { |
1341 | case 0: | 1341 | case 0: |
1342 | event.event = RDMA_CM_EVENT_ESTABLISHED; | 1342 | event.event = RDMA_CM_EVENT_ESTABLISHED; |
1343 | event.param.conn.initiator_depth = iw_event->ird; | ||
1344 | event.param.conn.responder_resources = iw_event->ord; | ||
1343 | break; | 1345 | break; |
1344 | case -ECONNRESET: | 1346 | case -ECONNRESET: |
1345 | case -ECONNREFUSED: | 1347 | case -ECONNREFUSED: |
@@ -1355,6 +1357,8 @@ static int cma_iw_handler(struct iw_cm_id *iw_id, struct iw_cm_event *iw_event) | |||
1355 | break; | 1357 | break; |
1356 | case IW_CM_EVENT_ESTABLISHED: | 1358 | case IW_CM_EVENT_ESTABLISHED: |
1357 | event.event = RDMA_CM_EVENT_ESTABLISHED; | 1359 | event.event = RDMA_CM_EVENT_ESTABLISHED; |
1360 | event.param.conn.initiator_depth = iw_event->ird; | ||
1361 | event.param.conn.responder_resources = iw_event->ord; | ||
1358 | break; | 1362 | break; |
1359 | default: | 1363 | default: |
1360 | BUG_ON(1); | 1364 | BUG_ON(1); |
@@ -1445,8 +1449,8 @@ static int iw_conn_req_handler(struct iw_cm_id *cm_id, | |||
1445 | event.event = RDMA_CM_EVENT_CONNECT_REQUEST; | 1449 | event.event = RDMA_CM_EVENT_CONNECT_REQUEST; |
1446 | event.param.conn.private_data = iw_event->private_data; | 1450 | event.param.conn.private_data = iw_event->private_data; |
1447 | event.param.conn.private_data_len = iw_event->private_data_len; | 1451 | event.param.conn.private_data_len = iw_event->private_data_len; |
1448 | event.param.conn.initiator_depth = attr.max_qp_init_rd_atom; | 1452 | event.param.conn.initiator_depth = iw_event->ird; |
1449 | event.param.conn.responder_resources = attr.max_qp_rd_atom; | 1453 | event.param.conn.responder_resources = iw_event->ord; |
1450 | 1454 | ||
1451 | /* | 1455 | /* |
1452 | * Protect against the user destroying conn_id from another thread | 1456 | * Protect against the user destroying conn_id from another thread |
diff --git a/include/rdma/iw_cm.h b/include/rdma/iw_cm.h index 2d0191c90f9e..1a046b1595cc 100644 --- a/include/rdma/iw_cm.h +++ b/include/rdma/iw_cm.h | |||
@@ -52,8 +52,10 @@ struct iw_cm_event { | |||
52 | struct sockaddr_in local_addr; | 52 | struct sockaddr_in local_addr; |
53 | struct sockaddr_in remote_addr; | 53 | struct sockaddr_in remote_addr; |
54 | void *private_data; | 54 | void *private_data; |
55 | u8 private_data_len; | ||
56 | void *provider_data; | 55 | void *provider_data; |
56 | u8 private_data_len; | ||
57 | u8 ord; | ||
58 | u8 ird; | ||
57 | }; | 59 | }; |
58 | 60 | ||
59 | /** | 61 | /** |