Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Kumar Sanghvi and committed by
Roland Dreier
3ebeebc3 9595480c

+9 -3
+6 -2
drivers/infiniband/core/cma.c
··· 1340 1340 switch (iw_event->status) { 1341 1341 case 0: 1342 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 1345 break; 1344 1346 case -ECONNRESET: 1345 1347 case -ECONNREFUSED: ··· 1357 1355 break; 1358 1356 case IW_CM_EVENT_ESTABLISHED: 1359 1357 event.event = RDMA_CM_EVENT_ESTABLISHED; 1358 + event.param.conn.initiator_depth = iw_event->ird; 1359 + event.param.conn.responder_resources = iw_event->ord; 1360 1360 break; 1361 1361 default: 1362 1362 BUG_ON(1); ··· 1449 1445 event.event = RDMA_CM_EVENT_CONNECT_REQUEST; 1450 1446 event.param.conn.private_data = iw_event->private_data; 1451 1447 event.param.conn.private_data_len = iw_event->private_data_len; 1452 - event.param.conn.initiator_depth = attr.max_qp_init_rd_atom; 1453 - event.param.conn.responder_resources = attr.max_qp_rd_atom; 1448 + event.param.conn.initiator_depth = iw_event->ird; 1449 + event.param.conn.responder_resources = iw_event->ord; 1454 1450 1455 1451 /* 1456 1452 * Protect against the user destroying conn_id from another thread
+3 -1
include/rdma/iw_cm.h
··· 52 52 struct sockaddr_in local_addr; 53 53 struct sockaddr_in remote_addr; 54 54 void *private_data; 55 - u8 private_data_len; 56 55 void *provider_data; 56 + u8 private_data_len; 57 + u8 ord; 58 + u8 ird; 57 59 }; 58 60 59 61 /**