|
@@ -3687,11 +3687,16 @@ int i40iw_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
|
|
|
cm_id->add_ref(cm_id);
|
|
|
i40iw_add_ref(&iwqp->ibqp);
|
|
|
|
|
|
- i40iw_send_cm_event(cm_node, cm_id, IW_CM_EVENT_ESTABLISHED, 0);
|
|
|
-
|
|
|
attr.qp_state = IB_QPS_RTS;
|
|
|
cm_node->qhash_set = false;
|
|
|
i40iw_modify_qp(&iwqp->ibqp, &attr, IB_QP_STATE, NULL);
|
|
|
+
|
|
|
+ cm_node->accelerated = 1;
|
|
|
+ status =
|
|
|
+ i40iw_send_cm_event(cm_node, cm_id, IW_CM_EVENT_ESTABLISHED, 0);
|
|
|
+ if (status)
|
|
|
+ i40iw_debug(dev, I40IW_DEBUG_CM, "error sending cm event - ESTABLISHED\n");
|
|
|
+
|
|
|
if (cm_node->loopbackpartner) {
|
|
|
cm_node->loopbackpartner->pdata.size = conn_param->private_data_len;
|
|
|
|
|
@@ -3702,7 +3707,6 @@ int i40iw_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
|
|
|
i40iw_create_event(cm_node->loopbackpartner, I40IW_CM_EVENT_CONNECTED);
|
|
|
}
|
|
|
|
|
|
- cm_node->accelerated = 1;
|
|
|
if (cm_node->accept_pend) {
|
|
|
atomic_dec(&cm_node->listener->pend_accepts_cnt);
|
|
|
cm_node->accept_pend = 0;
|
|
@@ -4048,9 +4052,6 @@ static void i40iw_cm_event_connected(struct i40iw_cm_event *event)
|
|
|
dev->iw_priv_qp_ops->qp_send_rtt(&iwqp->sc_qp, read0);
|
|
|
if (iwqp->page)
|
|
|
kunmap(iwqp->page);
|
|
|
- status = i40iw_send_cm_event(cm_node, cm_id, IW_CM_EVENT_CONNECT_REPLY, 0);
|
|
|
- if (status)
|
|
|
- i40iw_pr_err("send cm event\n");
|
|
|
|
|
|
memset(&attr, 0, sizeof(attr));
|
|
|
attr.qp_state = IB_QPS_RTS;
|
|
@@ -4058,6 +4059,10 @@ static void i40iw_cm_event_connected(struct i40iw_cm_event *event)
|
|
|
i40iw_modify_qp(&iwqp->ibqp, &attr, IB_QP_STATE, NULL);
|
|
|
|
|
|
cm_node->accelerated = 1;
|
|
|
+ status = i40iw_send_cm_event(cm_node, cm_id, IW_CM_EVENT_CONNECT_REPLY,
|
|
|
+ 0);
|
|
|
+ if (status)
|
|
|
+ i40iw_debug(dev, I40IW_DEBUG_CM, "error sending cm event - CONNECT_REPLY\n");
|
|
|
|
|
|
return;
|
|
|
|