Lines Matching full:com
120 get_ep(&ep->com); in start_ep_timer()
130 __func__, ep, ep->com.state); in stop_ep_timer()
134 put_ep(&ep->com); in stop_ep_timer()
202 return iwch_cxgb3_ofld_send(ep->com.tdev, skb); in iwch_quiesce_tid()
223 return iwch_cxgb3_ofld_send(ep->com.tdev, skb); in iwch_resume_tid()
229 ep->emss = T3C_DATA(ep->com.tdev)->mtus[G_TCPOPT_MSS(opt)] - 40; in set_emss()
282 struct iwch_ep, com); in __free_ep()
284 __func__, ep, states[state_read(&ep->com)]); in __free_ep()
285 if (test_bit(RELEASE_RESOURCES, &ep->com.flags)) { in __free_ep()
286 cxgb3_remove_tid(ep->com.tdev, (void *)ep, ep->hwtid); in __free_ep()
288 l2t_release(ep->com.tdev, ep->l2t); in __free_ep()
296 set_bit(RELEASE_RESOURCES, &ep->com.flags); in release_ep_resources()
297 put_ep(&ep->com); in release_ep_resources()
403 return iwch_l2t_send(ep->com.tdev, skb, ep->l2t); in send_halfclose()
423 return iwch_l2t_send(ep->com.tdev, skb, ep->l2t); in send_abort()
441 mtu_idx = find_best_mtu(T3C_DATA(ep->com.tdev), dst_mtu(ep->dst)); in send_connect()
459 req->local_port = ep->com.local_addr.sin_port; in send_connect()
460 req->peer_port = ep->com.remote_addr.sin_port; in send_connect()
461 req->local_ip = ep->com.local_addr.sin_addr.s_addr; in send_connect()
462 req->peer_ip = ep->com.remote_addr.sin_addr.s_addr; in send_connect()
467 return iwch_l2t_send(ep->com.tdev, skb, ep->l2t); in send_connect()
524 iwch_l2t_send(ep->com.tdev, skb, ep->l2t); in send_mpa_req()
526 state_set(&ep->com, MPA_REQ_SENT); in send_mpa_req()
575 return iwch_l2t_send(ep->com.tdev, skb, ep->l2t); in send_mpa_reject()
625 state_set(&ep->com, MPA_REP_SENT); in send_mpa_reply()
626 return iwch_l2t_send(ep->com.tdev, skb, ep->l2t); in send_mpa_reply()
641 cxgb3_insert_tid(ep->com.tdev, &t3c_client, ep, tid); in act_establish()
649 cxgb3_free_atid(ep->com.tdev, ep->atid); in act_establish()
660 state_set(&ep->com, ABORTING); in abort_connection()
671 if (ep->com.cm_id) { in close_complete_upcall()
673 ep, ep->com.cm_id, ep->hwtid); in close_complete_upcall()
674 ep->com.cm_id->event_handler(ep->com.cm_id, &event); in close_complete_upcall()
675 ep->com.cm_id->rem_ref(ep->com.cm_id); in close_complete_upcall()
676 ep->com.cm_id = NULL; in close_complete_upcall()
677 ep->com.qp = NULL; in close_complete_upcall()
688 if (ep->com.cm_id) { in peer_close_upcall()
690 ep, ep->com.cm_id, ep->hwtid); in peer_close_upcall()
691 ep->com.cm_id->event_handler(ep->com.cm_id, &event); in peer_close_upcall()
703 if (ep->com.cm_id) { in peer_abort_upcall()
705 ep->com.cm_id, ep->hwtid); in peer_abort_upcall()
706 ep->com.cm_id->event_handler(ep->com.cm_id, &event); in peer_abort_upcall()
707 ep->com.cm_id->rem_ref(ep->com.cm_id); in peer_abort_upcall()
708 ep->com.cm_id = NULL; in peer_abort_upcall()
709 ep->com.qp = NULL; in peer_abort_upcall()
721 memcpy(&event.local_addr, &ep->com.local_addr, in connect_reply_upcall()
722 sizeof(ep->com.local_addr)); in connect_reply_upcall()
723 memcpy(&event.remote_addr, &ep->com.remote_addr, in connect_reply_upcall()
724 sizeof(ep->com.remote_addr)); in connect_reply_upcall()
730 if (ep->com.cm_id) { in connect_reply_upcall()
733 ep->com.cm_id->event_handler(ep->com.cm_id, &event); in connect_reply_upcall()
736 ep->com.cm_id->rem_ref(ep->com.cm_id); in connect_reply_upcall()
737 ep->com.cm_id = NULL; in connect_reply_upcall()
738 ep->com.qp = NULL; in connect_reply_upcall()
749 memcpy(&event.local_addr, &ep->com.local_addr, in connect_request_upcall()
750 sizeof(ep->com.local_addr)); in connect_request_upcall()
751 memcpy(&event.remote_addr, &ep->com.remote_addr, in connect_request_upcall()
752 sizeof(ep->com.local_addr)); in connect_request_upcall()
761 if (state_read(&ep->parent_ep->com) != DEAD) { in connect_request_upcall()
762 get_ep(&ep->com); in connect_request_upcall()
763 ep->parent_ep->com.cm_id->event_handler( in connect_request_upcall()
764 ep->parent_ep->com.cm_id, in connect_request_upcall()
767 put_ep(&ep->parent_ep->com); in connect_request_upcall()
783 if (ep->com.cm_id) { in established_upcall()
785 ep->com.cm_id->event_handler(ep->com.cm_id, &event); in established_upcall()
806 iwch_cxgb3_ofld_send(ep->com.tdev, skb); in update_rx_credits()
826 if (state_read(&ep->com) != MPA_REQ_SENT) in process_mpa_reply()
899 state_set(&ep->com, FPDU_MODE); in process_mpa_reply()
921 err = iwch_modify_qp(ep->com.qp->rhp, in process_mpa_reply()
922 ep->com.qp, mask, &attrs, 1); in process_mpa_reply()
926 if (peer2peer && iwch_rqes_posted(ep->com.qp) == 0) { in process_mpa_reply()
951 if (state_read(&ep->com) != MPA_REQ_WAIT) in process_mpa_request()
1033 state_set(&ep->com, MPA_REQ_RCVD); in process_mpa_request()
1054 switch (state_read(&ep->com)) { in rx_data()
1065 __func__, ep, state_read(&ep->com), ep->hwtid); in rx_data()
1097 __func__, ep, state_read(&ep->com)); in tx_ack()
1101 spin_lock_irqsave(&ep->com.lock, flags); in tx_ack()
1106 __func__, ep, ep->com.state); in tx_ack()
1109 __func__, ep, ep->com.state); in tx_ack()
1110 if (peer2peer && ep->com.state == FPDU_MODE) in tx_ack()
1114 __func__, ep, ep->com.state); in tx_ack()
1115 if (ep->com.state == MPA_REQ_RCVD) { in tx_ack()
1116 ep->com.rpl_done = 1; in tx_ack()
1117 wake_up(&ep->com.waitq); in tx_ack()
1122 __func__, ep, ep->com.state); in tx_ack()
1126 spin_unlock_irqrestore(&ep->com.lock, flags); in tx_ack()
1145 if (!test_and_set_bit(ABORT_REQ_IN_PROGRESS, &ep->com.flags)) { in abort_rpl()
1149 spin_lock_irqsave(&ep->com.lock, flags); in abort_rpl()
1150 switch (ep->com.state) { in abort_rpl()
1153 __state_set(&ep->com, DEAD); in abort_rpl()
1157 pr_err("%s ep %p state %d\n", __func__, ep, ep->com.state); in abort_rpl()
1160 spin_unlock_irqrestore(&ep->com.lock, flags); in abort_rpl()
1184 state_set(&ep->com, DEAD); in act_open_rpl()
1185 if (ep->com.tdev->type != T3A && act_open_has_tid(rpl->status)) in act_open_rpl()
1186 release_tid(ep->com.tdev, GET_TID(rpl), NULL); in act_open_rpl()
1187 cxgb3_free_atid(ep->com.tdev, ep->atid); in act_open_rpl()
1189 l2t_release(ep->com.tdev, ep->l2t); in act_open_rpl()
1190 put_ep(&ep->com); in act_open_rpl()
1209 req->local_port = ep->com.local_addr.sin_port; in listen_start()
1210 req->local_ip = ep->com.local_addr.sin_addr.s_addr; in listen_start()
1219 return iwch_cxgb3_ofld_send(ep->com.tdev, skb); in listen_start()
1229 ep->com.rpl_err = status2errno(rpl->status); in pass_open_rpl()
1230 ep->com.rpl_done = 1; in pass_open_rpl()
1231 wake_up(&ep->com.waitq); in pass_open_rpl()
1252 return iwch_cxgb3_ofld_send(ep->com.tdev, skb); in listen_stop()
1262 ep->com.rpl_err = status2errno(rpl->status); in close_listsrv_rpl()
1263 ep->com.rpl_done = 1; in close_listsrv_rpl()
1264 wake_up(&ep->com.waitq); in close_listsrv_rpl()
1279 mtu_idx = find_best_mtu(T3C_DATA(ep->com.tdev), dst_mtu(ep->dst)); in accept_cr()
1301 iwch_l2t_send(ep->com.tdev, skb, ep->l2t); in accept_cr()
1346 if (state_read(&parent_ep->com) != LISTEN) { in pass_accept_req()
1385 state_set(&child_ep->com, CONNECTING); in pass_accept_req()
1386 child_ep->com.tdev = tdev; in pass_accept_req()
1387 child_ep->com.cm_id = NULL; in pass_accept_req()
1388 child_ep->com.local_addr.sin_family = AF_INET; in pass_accept_req()
1389 child_ep->com.local_addr.sin_port = req->local_port; in pass_accept_req()
1390 child_ep->com.local_addr.sin_addr.s_addr = req->local_ip; in pass_accept_req()
1391 child_ep->com.remote_addr.sin_family = AF_INET; in pass_accept_req()
1392 child_ep->com.remote_addr.sin_port = req->peer_port; in pass_accept_req()
1393 child_ep->com.remote_addr.sin_addr.s_addr = req->peer_ip; in pass_accept_req()
1394 get_ep(&parent_ep->com); in pass_accept_req()
1422 state_set(&ep->com, MPA_REQ_WAIT); in pass_establish()
1439 spin_lock_irqsave(&ep->com.lock, flags); in peer_close()
1440 switch (ep->com.state) { in peer_close()
1442 __state_set(&ep->com, CLOSING); in peer_close()
1445 __state_set(&ep->com, CLOSING); in peer_close()
1456 __state_set(&ep->com, CLOSING); in peer_close()
1457 ep->com.rpl_done = 1; in peer_close()
1458 ep->com.rpl_err = -ECONNRESET; in peer_close()
1460 wake_up(&ep->com.waitq); in peer_close()
1463 __state_set(&ep->com, CLOSING); in peer_close()
1464 ep->com.rpl_done = 1; in peer_close()
1465 ep->com.rpl_err = -ECONNRESET; in peer_close()
1467 wake_up(&ep->com.waitq); in peer_close()
1471 __state_set(&ep->com, CLOSING); in peer_close()
1473 iwch_modify_qp(ep->com.qp->rhp, ep->com.qp, in peer_close()
1481 __state_set(&ep->com, MORIBUND); in peer_close()
1486 if (ep->com.cm_id && ep->com.qp) { in peer_close()
1488 iwch_modify_qp(ep->com.qp->rhp, ep->com.qp, in peer_close()
1492 __state_set(&ep->com, DEAD); in peer_close()
1502 spin_unlock_irqrestore(&ep->com.lock, flags); in peer_close()
1533 t3_l2t_send_event(ep->com.tdev, ep->l2t); in peer_abort()
1541 if (!test_and_set_bit(PEER_ABORT_IN_PROGRESS, &ep->com.flags)) { in peer_abort()
1545 spin_lock_irqsave(&ep->com.lock, flags); in peer_abort()
1546 pr_debug("%s ep %p state %u\n", __func__, ep, ep->com.state); in peer_abort()
1547 switch (ep->com.state) { in peer_abort()
1558 ep->com.rpl_done = 1; in peer_abort()
1559 ep->com.rpl_err = -ECONNRESET; in peer_abort()
1561 wake_up(&ep->com.waitq); in peer_abort()
1571 ep->com.rpl_done = 1; in peer_abort()
1572 ep->com.rpl_err = -ECONNRESET; in peer_abort()
1574 wake_up(&ep->com.waitq); in peer_abort()
1581 if (ep->com.cm_id && ep->com.qp) { in peer_abort()
1583 ret = iwch_modify_qp(ep->com.qp->rhp, in peer_abort()
1584 ep->com.qp, IWCH_QP_ATTR_NEXT_STATE, in peer_abort()
1595 spin_unlock_irqrestore(&ep->com.lock, flags); in peer_abort()
1602 if (ep->com.state != ABORTING) { in peer_abort()
1603 __state_set(&ep->com, DEAD); in peer_abort()
1606 spin_unlock_irqrestore(&ep->com.lock, flags); in peer_abort()
1620 iwch_cxgb3_ofld_send(ep->com.tdev, rpl_skb); in peer_abort()
1638 spin_lock_irqsave(&ep->com.lock, flags); in close_con_rpl()
1639 switch (ep->com.state) { in close_con_rpl()
1641 __state_set(&ep->com, MORIBUND); in close_con_rpl()
1645 if ((ep->com.cm_id) && (ep->com.qp)) { in close_con_rpl()
1647 iwch_modify_qp(ep->com.qp->rhp, in close_con_rpl()
1648 ep->com.qp, in close_con_rpl()
1653 __state_set(&ep->com, DEAD); in close_con_rpl()
1663 spin_unlock_irqrestore(&ep->com.lock, flags); in close_con_rpl()
1685 if (state_read(&ep->com) != FPDU_MODE) in terminate()
1691 skb_copy_from_linear_data(skb, ep->com.qp->attr.terminate_buffer, in terminate()
1693 ep->com.qp->attr.terminate_msg_len = skb->len; in terminate()
1694 ep->com.qp->attr.is_terminate_local = 0; in terminate()
1712 iwch_modify_qp(ep->com.qp->rhp, in ec_status()
1713 ep->com.qp, IWCH_QP_ATTR_NEXT_STATE, in ec_status()
1727 spin_lock_irqsave(&ep->com.lock, flags); in ep_timeout()
1729 ep->com.state); in ep_timeout()
1730 switch (ep->com.state) { in ep_timeout()
1732 __state_set(&ep->com, ABORTING); in ep_timeout()
1736 __state_set(&ep->com, ABORTING); in ep_timeout()
1740 if (ep->com.cm_id && ep->com.qp) { in ep_timeout()
1742 iwch_modify_qp(ep->com.qp->rhp, in ep_timeout()
1743 ep->com.qp, IWCH_QP_ATTR_NEXT_STATE, in ep_timeout()
1746 __state_set(&ep->com, ABORTING); in ep_timeout()
1750 __func__, ep, ep->com.state); in ep_timeout()
1753 spin_unlock_irqrestore(&ep->com.lock, flags); in ep_timeout()
1756 put_ep(&ep->com); in ep_timeout()
1765 if (state_read(&ep->com) == DEAD) { in iwch_reject_cr()
1766 put_ep(&ep->com); in iwch_reject_cr()
1769 BUG_ON(state_read(&ep->com) != MPA_REQ_RCVD); in iwch_reject_cr()
1776 put_ep(&ep->com); in iwch_reject_cr()
1790 if (state_read(&ep->com) == DEAD) { in iwch_accept_cr()
1795 BUG_ON(state_read(&ep->com) != MPA_REQ_RCVD); in iwch_accept_cr()
1806 ep->com.cm_id = cm_id; in iwch_accept_cr()
1807 ep->com.qp = qp; in iwch_accept_cr()
1831 err = iwch_modify_qp(ep->com.qp->rhp, in iwch_accept_cr()
1832 ep->com.qp, mask, &attrs, 1); in iwch_accept_cr()
1838 wait_event(ep->com.waitq, ep->com.rpl_done); in iwch_accept_cr()
1839 err = ep->com.rpl_err; in iwch_accept_cr()
1850 state_set(&ep->com, FPDU_MODE); in iwch_accept_cr()
1852 put_ep(&ep->com); in iwch_accept_cr()
1855 ep->com.cm_id = NULL; in iwch_accept_cr()
1856 ep->com.qp = NULL; in iwch_accept_cr()
1859 put_ep(&ep->com); in iwch_accept_cr()
1911 ep->com.tdev = h->rdev.t3cdev_p; in iwch_connect()
1914 ep->com.cm_id = cm_id; in iwch_connect()
1915 ep->com.qp = get_qhp(h, conn_param->qpn); in iwch_connect()
1916 BUG_ON(!ep->com.qp); in iwch_connect()
1918 ep->com.qp, cm_id); in iwch_connect()
1940 ep->l2t = t3_l2t_get(ep->com.tdev, ep->dst, NULL, in iwch_connect()
1948 state_set(&ep->com, CONNECTING); in iwch_connect()
1950 memcpy(&ep->com.local_addr, &cm_id->m_local_addr, in iwch_connect()
1951 sizeof(ep->com.local_addr)); in iwch_connect()
1952 memcpy(&ep->com.remote_addr, &cm_id->m_remote_addr, in iwch_connect()
1953 sizeof(ep->com.remote_addr)); in iwch_connect()
1964 cxgb3_free_atid(ep->com.tdev, ep->atid); in iwch_connect()
1967 put_ep(&ep->com); in iwch_connect()
1993 ep->com.tdev = h->rdev.t3cdev_p; in iwch_create_listen()
1995 ep->com.cm_id = cm_id; in iwch_create_listen()
1997 memcpy(&ep->com.local_addr, &cm_id->m_local_addr, in iwch_create_listen()
1998 sizeof(ep->com.local_addr)); in iwch_create_listen()
2010 state_set(&ep->com, LISTEN); in iwch_create_listen()
2016 wait_event(ep->com.waitq, ep->com.rpl_done); in iwch_create_listen()
2017 err = ep->com.rpl_err; in iwch_create_listen()
2023 cxgb3_free_stid(ep->com.tdev, ep->stid); in iwch_create_listen()
2026 put_ep(&ep->com); in iwch_create_listen()
2040 state_set(&ep->com, DEAD); in iwch_destroy_listen()
2041 ep->com.rpl_done = 0; in iwch_destroy_listen()
2042 ep->com.rpl_err = 0; in iwch_destroy_listen()
2046 wait_event(ep->com.waitq, ep->com.rpl_done); in iwch_destroy_listen()
2047 cxgb3_free_stid(ep->com.tdev, ep->stid); in iwch_destroy_listen()
2049 err = ep->com.rpl_err; in iwch_destroy_listen()
2051 put_ep(&ep->com); in iwch_destroy_listen()
2064 spin_lock_irqsave(&ep->com.lock, flags); in iwch_ep_disconnect()
2067 states[ep->com.state], abrupt); in iwch_ep_disconnect()
2069 tdev = (struct t3cdev *)ep->com.tdev; in iwch_ep_disconnect()
2074 ep->com.state = DEAD; in iwch_ep_disconnect()
2076 switch (ep->com.state) { in iwch_ep_disconnect()
2084 ep->com.state = ABORTING; in iwch_ep_disconnect()
2086 ep->com.state = CLOSING; in iwch_ep_disconnect()
2089 set_bit(CLOSE_SENT, &ep->com.flags); in iwch_ep_disconnect()
2092 if (!test_and_set_bit(CLOSE_SENT, &ep->com.flags)) { in iwch_ep_disconnect()
2096 ep->com.state = ABORTING; in iwch_ep_disconnect()
2098 ep->com.state = MORIBUND; in iwch_ep_disconnect()
2105 __func__, ep, ep->com.state); in iwch_ep_disconnect()
2112 spin_unlock_irqrestore(&ep->com.lock, flags); in iwch_ep_disconnect()
2137 l2t_release(ep->com.tdev, ep->l2t); in iwch_ep_redirect()