Lines Matching refs:com
120 get_ep(&ep->com); in start_ep_timer()
132 __func__, ep, ep->com.state); in stop_ep_timer()
136 put_ep(&ep->com); in stop_ep_timer()
204 return iwch_cxgb3_ofld_send(ep->com.tdev, skb); in iwch_quiesce_tid()
225 return iwch_cxgb3_ofld_send(ep->com.tdev, skb); in iwch_resume_tid()
231 ep->emss = T3C_DATA(ep->com.tdev)->mtus[G_TCPOPT_MSS(opt)] - 40; in set_emss()
284 struct iwch_ep, com); in __free_ep()
285 PDBG("%s ep %p state %s\n", __func__, ep, states[state_read(&ep->com)]); in __free_ep()
286 if (test_bit(RELEASE_RESOURCES, &ep->com.flags)) { in __free_ep()
287 cxgb3_remove_tid(ep->com.tdev, (void *)ep, ep->hwtid); in __free_ep()
289 l2t_release(ep->com.tdev, ep->l2t); in __free_ep()
297 set_bit(RELEASE_RESOURCES, &ep->com.flags); in release_ep_resources()
298 put_ep(&ep->com); in release_ep_resources()
404 return iwch_l2t_send(ep->com.tdev, skb, ep->l2t); in send_halfclose()
426 return iwch_l2t_send(ep->com.tdev, skb, ep->l2t); in send_abort()
445 mtu_idx = find_best_mtu(T3C_DATA(ep->com.tdev), dst_mtu(ep->dst)); in send_connect()
463 req->local_port = ep->com.local_addr.sin_port; in send_connect()
464 req->peer_port = ep->com.remote_addr.sin_port; in send_connect()
465 req->local_ip = ep->com.local_addr.sin_addr.s_addr; in send_connect()
466 req->peer_ip = ep->com.remote_addr.sin_addr.s_addr; in send_connect()
471 return iwch_l2t_send(ep->com.tdev, skb, ep->l2t); in send_connect()
528 iwch_l2t_send(ep->com.tdev, skb, ep->l2t); in send_mpa_req()
530 state_set(&ep->com, MPA_REQ_SENT); in send_mpa_req()
579 return iwch_l2t_send(ep->com.tdev, skb, ep->l2t); in send_mpa_reject()
629 state_set(&ep->com, MPA_REP_SENT); in send_mpa_reply()
630 return iwch_l2t_send(ep->com.tdev, skb, ep->l2t); in send_mpa_reply()
645 cxgb3_insert_tid(ep->com.tdev, &t3c_client, ep, tid); in act_establish()
653 cxgb3_free_atid(ep->com.tdev, ep->atid); in act_establish()
664 state_set(&ep->com, ABORTING); in abort_connection()
675 if (ep->com.cm_id) { in close_complete_upcall()
677 ep, ep->com.cm_id, ep->hwtid); in close_complete_upcall()
678 ep->com.cm_id->event_handler(ep->com.cm_id, &event); in close_complete_upcall()
679 ep->com.cm_id->rem_ref(ep->com.cm_id); in close_complete_upcall()
680 ep->com.cm_id = NULL; in close_complete_upcall()
681 ep->com.qp = NULL; in close_complete_upcall()
692 if (ep->com.cm_id) { in peer_close_upcall()
694 ep, ep->com.cm_id, ep->hwtid); in peer_close_upcall()
695 ep->com.cm_id->event_handler(ep->com.cm_id, &event); in peer_close_upcall()
707 if (ep->com.cm_id) { in peer_abort_upcall()
709 ep->com.cm_id, ep->hwtid); in peer_abort_upcall()
710 ep->com.cm_id->event_handler(ep->com.cm_id, &event); in peer_abort_upcall()
711 ep->com.cm_id->rem_ref(ep->com.cm_id); in peer_abort_upcall()
712 ep->com.cm_id = NULL; in peer_abort_upcall()
713 ep->com.qp = NULL; in peer_abort_upcall()
725 memcpy(&event.local_addr, &ep->com.local_addr, in connect_reply_upcall()
726 sizeof(ep->com.local_addr)); in connect_reply_upcall()
727 memcpy(&event.remote_addr, &ep->com.remote_addr, in connect_reply_upcall()
728 sizeof(ep->com.remote_addr)); in connect_reply_upcall()
734 if (ep->com.cm_id) { in connect_reply_upcall()
737 ep->com.cm_id->event_handler(ep->com.cm_id, &event); in connect_reply_upcall()
740 ep->com.cm_id->rem_ref(ep->com.cm_id); in connect_reply_upcall()
741 ep->com.cm_id = NULL; in connect_reply_upcall()
742 ep->com.qp = NULL; in connect_reply_upcall()
753 memcpy(&event.local_addr, &ep->com.local_addr, in connect_request_upcall()
754 sizeof(ep->com.local_addr)); in connect_request_upcall()
755 memcpy(&event.remote_addr, &ep->com.remote_addr, in connect_request_upcall()
756 sizeof(ep->com.local_addr)); in connect_request_upcall()
765 if (state_read(&ep->parent_ep->com) != DEAD) { in connect_request_upcall()
766 get_ep(&ep->com); in connect_request_upcall()
767 ep->parent_ep->com.cm_id->event_handler( in connect_request_upcall()
768 ep->parent_ep->com.cm_id, in connect_request_upcall()
771 put_ep(&ep->parent_ep->com); in connect_request_upcall()
787 if (ep->com.cm_id) { in established_upcall()
789 ep->com.cm_id->event_handler(ep->com.cm_id, &event); in established_upcall()
810 iwch_cxgb3_ofld_send(ep->com.tdev, skb); in update_rx_credits()
830 if (state_read(&ep->com) != MPA_REQ_SENT) in process_mpa_reply()
903 state_set(&ep->com, FPDU_MODE); in process_mpa_reply()
925 err = iwch_modify_qp(ep->com.qp->rhp, in process_mpa_reply()
926 ep->com.qp, mask, &attrs, 1); in process_mpa_reply()
930 if (peer2peer && iwch_rqes_posted(ep->com.qp) == 0) { in process_mpa_reply()
955 if (state_read(&ep->com) != MPA_REQ_WAIT) in process_mpa_request()
1037 state_set(&ep->com, MPA_REQ_RCVD); in process_mpa_request()
1058 switch (state_read(&ep->com)) { in rx_data()
1070 __func__, ep, state_read(&ep->com), ep->hwtid); in rx_data()
1102 __func__, ep, state_read(&ep->com)); in tx_ack()
1106 spin_lock_irqsave(&ep->com.lock, flags); in tx_ack()
1111 __func__, ep, ep->com.state); in tx_ack()
1114 __func__, ep, ep->com.state); in tx_ack()
1115 if (peer2peer && ep->com.state == FPDU_MODE) in tx_ack()
1119 __func__, ep, ep->com.state); in tx_ack()
1120 if (ep->com.state == MPA_REQ_RCVD) { in tx_ack()
1121 ep->com.rpl_done = 1; in tx_ack()
1122 wake_up(&ep->com.waitq); in tx_ack()
1127 __func__, ep, ep->com.state); in tx_ack()
1131 spin_unlock_irqrestore(&ep->com.lock, flags); in tx_ack()
1150 if (!test_and_set_bit(ABORT_REQ_IN_PROGRESS, &ep->com.flags)) { in abort_rpl()
1154 spin_lock_irqsave(&ep->com.lock, flags); in abort_rpl()
1155 switch (ep->com.state) { in abort_rpl()
1158 __state_set(&ep->com, DEAD); in abort_rpl()
1163 __func__, ep, ep->com.state); in abort_rpl()
1166 spin_unlock_irqrestore(&ep->com.lock, flags); in abort_rpl()
1190 state_set(&ep->com, DEAD); in act_open_rpl()
1191 if (ep->com.tdev->type != T3A && act_open_has_tid(rpl->status)) in act_open_rpl()
1192 release_tid(ep->com.tdev, GET_TID(rpl), NULL); in act_open_rpl()
1193 cxgb3_free_atid(ep->com.tdev, ep->atid); in act_open_rpl()
1195 l2t_release(ep->com.tdev, ep->l2t); in act_open_rpl()
1196 put_ep(&ep->com); in act_open_rpl()
1215 req->local_port = ep->com.local_addr.sin_port; in listen_start()
1216 req->local_ip = ep->com.local_addr.sin_addr.s_addr; in listen_start()
1225 return iwch_cxgb3_ofld_send(ep->com.tdev, skb); in listen_start()
1235 ep->com.rpl_err = status2errno(rpl->status); in pass_open_rpl()
1236 ep->com.rpl_done = 1; in pass_open_rpl()
1237 wake_up(&ep->com.waitq); in pass_open_rpl()
1258 return iwch_cxgb3_ofld_send(ep->com.tdev, skb); in listen_stop()
1268 ep->com.rpl_err = status2errno(rpl->status); in close_listsrv_rpl()
1269 ep->com.rpl_done = 1; in close_listsrv_rpl()
1270 wake_up(&ep->com.waitq); in close_listsrv_rpl()
1285 mtu_idx = find_best_mtu(T3C_DATA(ep->com.tdev), dst_mtu(ep->dst)); in accept_cr()
1307 iwch_l2t_send(ep->com.tdev, skb, ep->l2t); in accept_cr()
1352 if (state_read(&parent_ep->com) != LISTEN) { in pass_accept_req()
1396 state_set(&child_ep->com, CONNECTING); in pass_accept_req()
1397 child_ep->com.tdev = tdev; in pass_accept_req()
1398 child_ep->com.cm_id = NULL; in pass_accept_req()
1399 child_ep->com.local_addr.sin_family = PF_INET; in pass_accept_req()
1400 child_ep->com.local_addr.sin_port = req->local_port; in pass_accept_req()
1401 child_ep->com.local_addr.sin_addr.s_addr = req->local_ip; in pass_accept_req()
1402 child_ep->com.remote_addr.sin_family = PF_INET; in pass_accept_req()
1403 child_ep->com.remote_addr.sin_port = req->peer_port; in pass_accept_req()
1404 child_ep->com.remote_addr.sin_addr.s_addr = req->peer_ip; in pass_accept_req()
1405 get_ep(&parent_ep->com); in pass_accept_req()
1433 state_set(&ep->com, MPA_REQ_WAIT); in pass_establish()
1450 spin_lock_irqsave(&ep->com.lock, flags); in peer_close()
1451 switch (ep->com.state) { in peer_close()
1453 __state_set(&ep->com, CLOSING); in peer_close()
1456 __state_set(&ep->com, CLOSING); in peer_close()
1467 __state_set(&ep->com, CLOSING); in peer_close()
1468 ep->com.rpl_done = 1; in peer_close()
1469 ep->com.rpl_err = -ECONNRESET; in peer_close()
1471 wake_up(&ep->com.waitq); in peer_close()
1474 __state_set(&ep->com, CLOSING); in peer_close()
1475 ep->com.rpl_done = 1; in peer_close()
1476 ep->com.rpl_err = -ECONNRESET; in peer_close()
1478 wake_up(&ep->com.waitq); in peer_close()
1482 __state_set(&ep->com, CLOSING); in peer_close()
1484 iwch_modify_qp(ep->com.qp->rhp, ep->com.qp, in peer_close()
1492 __state_set(&ep->com, MORIBUND); in peer_close()
1497 if (ep->com.cm_id && ep->com.qp) { in peer_close()
1499 iwch_modify_qp(ep->com.qp->rhp, ep->com.qp, in peer_close()
1503 __state_set(&ep->com, DEAD); in peer_close()
1513 spin_unlock_irqrestore(&ep->com.lock, flags); in peer_close()
1544 t3_l2t_send_event(ep->com.tdev, ep->l2t); in peer_abort()
1552 if (!test_and_set_bit(PEER_ABORT_IN_PROGRESS, &ep->com.flags)) { in peer_abort()
1556 spin_lock_irqsave(&ep->com.lock, flags); in peer_abort()
1557 PDBG("%s ep %p state %u\n", __func__, ep, ep->com.state); in peer_abort()
1558 switch (ep->com.state) { in peer_abort()
1569 ep->com.rpl_done = 1; in peer_abort()
1570 ep->com.rpl_err = -ECONNRESET; in peer_abort()
1572 wake_up(&ep->com.waitq); in peer_abort()
1582 ep->com.rpl_done = 1; in peer_abort()
1583 ep->com.rpl_err = -ECONNRESET; in peer_abort()
1585 wake_up(&ep->com.waitq); in peer_abort()
1592 if (ep->com.cm_id && ep->com.qp) { in peer_abort()
1594 ret = iwch_modify_qp(ep->com.qp->rhp, in peer_abort()
1595 ep->com.qp, IWCH_QP_ATTR_NEXT_STATE, in peer_abort()
1608 spin_unlock_irqrestore(&ep->com.lock, flags); in peer_abort()
1615 if (ep->com.state != ABORTING) { in peer_abort()
1616 __state_set(&ep->com, DEAD); in peer_abort()
1619 spin_unlock_irqrestore(&ep->com.lock, flags); in peer_abort()
1634 iwch_cxgb3_ofld_send(ep->com.tdev, rpl_skb); in peer_abort()
1652 spin_lock_irqsave(&ep->com.lock, flags); in close_con_rpl()
1653 switch (ep->com.state) { in close_con_rpl()
1655 __state_set(&ep->com, MORIBUND); in close_con_rpl()
1659 if ((ep->com.cm_id) && (ep->com.qp)) { in close_con_rpl()
1661 iwch_modify_qp(ep->com.qp->rhp, in close_con_rpl()
1662 ep->com.qp, in close_con_rpl()
1667 __state_set(&ep->com, DEAD); in close_con_rpl()
1677 spin_unlock_irqrestore(&ep->com.lock, flags); in close_con_rpl()
1699 if (state_read(&ep->com) != FPDU_MODE) in terminate()
1705 skb_copy_from_linear_data(skb, ep->com.qp->attr.terminate_buffer, in terminate()
1707 ep->com.qp->attr.terminate_msg_len = skb->len; in terminate()
1708 ep->com.qp->attr.is_terminate_local = 0; in terminate()
1726 iwch_modify_qp(ep->com.qp->rhp, in ec_status()
1727 ep->com.qp, IWCH_QP_ATTR_NEXT_STATE, in ec_status()
1741 spin_lock_irqsave(&ep->com.lock, flags); in ep_timeout()
1743 ep->com.state); in ep_timeout()
1744 switch (ep->com.state) { in ep_timeout()
1746 __state_set(&ep->com, ABORTING); in ep_timeout()
1750 __state_set(&ep->com, ABORTING); in ep_timeout()
1754 if (ep->com.cm_id && ep->com.qp) { in ep_timeout()
1756 iwch_modify_qp(ep->com.qp->rhp, in ep_timeout()
1757 ep->com.qp, IWCH_QP_ATTR_NEXT_STATE, in ep_timeout()
1760 __state_set(&ep->com, ABORTING); in ep_timeout()
1764 __func__, ep, ep->com.state); in ep_timeout()
1767 spin_unlock_irqrestore(&ep->com.lock, flags); in ep_timeout()
1770 put_ep(&ep->com); in ep_timeout()
1779 if (state_read(&ep->com) == DEAD) { in iwch_reject_cr()
1780 put_ep(&ep->com); in iwch_reject_cr()
1783 BUG_ON(state_read(&ep->com) != MPA_REQ_RCVD); in iwch_reject_cr()
1790 put_ep(&ep->com); in iwch_reject_cr()
1804 if (state_read(&ep->com) == DEAD) { in iwch_accept_cr()
1809 BUG_ON(state_read(&ep->com) != MPA_REQ_RCVD); in iwch_accept_cr()
1820 ep->com.cm_id = cm_id; in iwch_accept_cr()
1821 ep->com.qp = qp; in iwch_accept_cr()
1845 err = iwch_modify_qp(ep->com.qp->rhp, in iwch_accept_cr()
1846 ep->com.qp, mask, &attrs, 1); in iwch_accept_cr()
1852 wait_event(ep->com.waitq, ep->com.rpl_done); in iwch_accept_cr()
1853 err = ep->com.rpl_err; in iwch_accept_cr()
1864 state_set(&ep->com, FPDU_MODE); in iwch_accept_cr()
1866 put_ep(&ep->com); in iwch_accept_cr()
1869 ep->com.cm_id = NULL; in iwch_accept_cr()
1870 ep->com.qp = NULL; in iwch_accept_cr()
1873 put_ep(&ep->com); in iwch_accept_cr()
1925 ep->com.tdev = h->rdev.t3cdev_p; in iwch_connect()
1928 ep->com.cm_id = cm_id; in iwch_connect()
1929 ep->com.qp = get_qhp(h, conn_param->qpn); in iwch_connect()
1930 BUG_ON(!ep->com.qp); in iwch_connect()
1932 ep->com.qp, cm_id); in iwch_connect()
1954 ep->l2t = t3_l2t_get(ep->com.tdev, ep->dst, NULL, in iwch_connect()
1962 state_set(&ep->com, CONNECTING); in iwch_connect()
1964 memcpy(&ep->com.local_addr, &cm_id->local_addr, in iwch_connect()
1965 sizeof(ep->com.local_addr)); in iwch_connect()
1966 memcpy(&ep->com.remote_addr, &cm_id->remote_addr, in iwch_connect()
1967 sizeof(ep->com.remote_addr)); in iwch_connect()
1978 cxgb3_free_atid(ep->com.tdev, ep->atid); in iwch_connect()
1981 put_ep(&ep->com); in iwch_connect()
2007 ep->com.tdev = h->rdev.t3cdev_p; in iwch_create_listen()
2009 ep->com.cm_id = cm_id; in iwch_create_listen()
2011 memcpy(&ep->com.local_addr, &cm_id->local_addr, in iwch_create_listen()
2012 sizeof(ep->com.local_addr)); in iwch_create_listen()
2024 state_set(&ep->com, LISTEN); in iwch_create_listen()
2030 wait_event(ep->com.waitq, ep->com.rpl_done); in iwch_create_listen()
2031 err = ep->com.rpl_err; in iwch_create_listen()
2037 cxgb3_free_stid(ep->com.tdev, ep->stid); in iwch_create_listen()
2040 put_ep(&ep->com); in iwch_create_listen()
2054 state_set(&ep->com, DEAD); in iwch_destroy_listen()
2055 ep->com.rpl_done = 0; in iwch_destroy_listen()
2056 ep->com.rpl_err = 0; in iwch_destroy_listen()
2060 wait_event(ep->com.waitq, ep->com.rpl_done); in iwch_destroy_listen()
2061 cxgb3_free_stid(ep->com.tdev, ep->stid); in iwch_destroy_listen()
2063 err = ep->com.rpl_err; in iwch_destroy_listen()
2065 put_ep(&ep->com); in iwch_destroy_listen()
2078 spin_lock_irqsave(&ep->com.lock, flags); in iwch_ep_disconnect()
2081 states[ep->com.state], abrupt); in iwch_ep_disconnect()
2083 tdev = (struct t3cdev *)ep->com.tdev; in iwch_ep_disconnect()
2088 ep->com.state = DEAD; in iwch_ep_disconnect()
2090 switch (ep->com.state) { in iwch_ep_disconnect()
2098 ep->com.state = ABORTING; in iwch_ep_disconnect()
2100 ep->com.state = CLOSING; in iwch_ep_disconnect()
2103 set_bit(CLOSE_SENT, &ep->com.flags); in iwch_ep_disconnect()
2106 if (!test_and_set_bit(CLOSE_SENT, &ep->com.flags)) { in iwch_ep_disconnect()
2110 ep->com.state = ABORTING; in iwch_ep_disconnect()
2112 ep->com.state = MORIBUND; in iwch_ep_disconnect()
2119 __func__, ep, ep->com.state); in iwch_ep_disconnect()
2126 spin_unlock_irqrestore(&ep->com.lock, flags); in iwch_ep_disconnect()
2151 l2t_release(ep->com.tdev, ep->l2t); in iwch_ep_redirect()