提交 96ac7e88 编写于 作者: S Steve Wise 提交者: Roland Dreier

RDMA/cxgb3: Adjust ORD/IRD (if needed) for peer2peer connections

NFS/RDMA currently fails to set up connections if peer2peer is on.
This is due to the fact that the NFS/RDMA client sets its ORD to 0.

If peer2peer is set, make sure the active side ORD is >= 1 and the
passive side IRD is >=1.
Signed-off-by: NSteve Wise <swise@opengridcomputing.com>
Signed-off-by: NRoland Dreier <rolandd@cisco.com>
上级 a939b96c
...@@ -1830,6 +1830,10 @@ int iwch_accept_cr(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param) ...@@ -1830,6 +1830,10 @@ int iwch_accept_cr(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
ep->com.rpl_err = 0; ep->com.rpl_err = 0;
ep->ird = conn_param->ird; ep->ird = conn_param->ird;
ep->ord = conn_param->ord; ep->ord = conn_param->ord;
if (peer2peer && ep->ird == 0)
ep->ird = 1;
PDBG("%s %d ird %d ord %d\n", __func__, __LINE__, ep->ird, ep->ord); PDBG("%s %d ird %d ord %d\n", __func__, __LINE__, ep->ird, ep->ord);
get_ep(&ep->com); get_ep(&ep->com);
...@@ -1915,6 +1919,10 @@ int iwch_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param) ...@@ -1915,6 +1919,10 @@ int iwch_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
conn_param->private_data, ep->plen); conn_param->private_data, ep->plen);
ep->ird = conn_param->ird; ep->ird = conn_param->ird;
ep->ord = conn_param->ord; ep->ord = conn_param->ord;
if (peer2peer && ep->ord == 0)
ep->ord = 1;
ep->com.tdev = h->rdev.t3cdev_p; ep->com.tdev = h->rdev.t3cdev_p;
cm_id->add_ref(cm_id); cm_id->add_ref(cm_id);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册