Lines Matching refs:com
165 c4iw_qp_rem_ref(&ep->com.qp->ibqp);
166 clear_bit(QP_REFERENCED, &ep->com.flags);
167 set_bit(QP_DEREFED, &ep->com.history);
172 set_bit(QP_REFERENCED, &ep->com.flags);
173 set_bit(QP_REFED, &ep->com.history);
174 c4iw_qp_add_ref(&ep->com.qp->ibqp);
185 clear_bit(TIMEOUT, &ep->com.flags);
186 c4iw_get_ep(&ep->com);
195 if (!test_and_set_bit(TIMEOUT, &ep->com.flags)) {
196 c4iw_put_ep(&ep->com);
250 ep->emss = ep->com.dev->rdev.lldi.mtus[TCPOPT_MSS_G(opt)] -
251 ((AF_INET == ep->com.remote_addr.ss_family) ?
334 xa_lock_irqsave(&ep->com.dev->hwtids, flags);
335 __xa_erase(&ep->com.dev->hwtids, ep->hwtid);
336 if (xa_empty(&ep->com.dev->hwtids))
337 wake_up(&ep->com.dev->wait);
338 xa_unlock_irqrestore(&ep->com.dev->hwtids, flags);
346 xa_lock_irqsave(&ep->com.dev->hwtids, flags);
347 err = __xa_insert(&ep->com.dev->hwtids, ep->hwtid, ep, GFP_KERNEL);
348 xa_unlock_irqrestore(&ep->com.dev->hwtids, flags);
364 c4iw_get_ep(&ep->com);
381 c4iw_get_ep(&ep->com);
390 ep = container_of(kref, struct c4iw_ep, com.kref);
391 pr_debug("ep %p state %s\n", ep, states[ep->com.state]);
392 if (test_bit(QP_REFERENCED, &ep->com.flags))
394 if (test_bit(RELEASE_RESOURCES, &ep->com.flags)) {
395 if (ep->com.remote_addr.ss_family == AF_INET6) {
398 &ep->com.local_addr;
401 ep->com.dev->rdev.lldi.ports[0],
405 cxgb4_remove_tid(ep->com.dev->rdev.lldi.tids, 0, ep->hwtid,
406 ep->com.local_addr.ss_family);
411 if (!skb_queue_empty(&ep->com.ep_skb_list))
412 skb_queue_purge(&ep->com.ep_skb_list);
413 c4iw_put_wr_wait(ep->com.wr_waitp);
419 set_bit(RELEASE_RESOURCES, &ep->com.flags);
429 c4iw_put_ep(&ep->com);
506 c4iw_put_ep(&ep->parent_ep->com);
530 sched(ep->com.dev, skb);
541 __state_set(&ep->com, DEAD);
554 __state_set(&ep->com, DEAD);
555 if (ep->com.remote_addr.ss_family == AF_INET6) {
557 (struct sockaddr_in6 *)&ep->com.local_addr;
558 cxgb4_clip_release(ep->com.dev->rdev.lldi.ports[0],
561 xa_erase_irq(&ep->com.dev->atids, ep->atid);
562 cxgb4_free_atid(ep->com.dev->rdev.lldi.tids, ep->atid);
574 struct c4iw_rdev *rdev = &ep->com.dev->rdev;
582 __state_set(&ep->com, DEAD);
591 struct sk_buff *skb = skb_dequeue(&ep->com.ep_skb_list);
618 (ep->com.dev->rdev.lldi.pf));
643 return c4iw_ofld_send(&ep->com.dev->rdev, skb);
648 struct sk_buff *skb = skb_dequeue(&ep->com.ep_skb_list);
658 return c4iw_l2t_send(&ep->com.dev->rdev, skb, ep->l2t);
682 c4iw_get_ep(&ep->com);
683 if (WARN_ON(c4iw_ofld_send(&ep->com.dev->rdev, skb)))
684 c4iw_put_ep(&ep->com);
690 struct sk_buff *req_skb = skb_dequeue(&ep->com.ep_skb_list);
699 return c4iw_l2t_send(&ep->com.dev->rdev, req_skb, ep->l2t);
704 if (!ep->com.qp || !ep->com.qp->srq) {
708 set_bit(ABORT_REQ_IN_PROGRESS, &ep->com.flags);
728 &ep->com.local_addr;
730 &ep->com.remote_addr;
732 &ep->com.local_addr;
734 &ep->com.remote_addr;
736 enum chip_type adapter_type = ep->com.dev->rdev.lldi.adapter_type;
741 netdev = ep->com.dev->rdev.lldi.ports[0];
762 wrlen = (ep->com.remote_addr.ss_family == AF_INET) ?
775 cxgb_best_mtu(ep->com.dev->rdev.lldi.mtus, ep->mtu, &mtu_idx,
777 (ep->com.remote_addr.ss_family == AF_INET) ? 0 : 1);
819 if (ep->com.remote_addr.ss_family == AF_INET6)
820 cxgb4_clip_get(ep->com.dev->rdev.lldi.ports[0],
825 if (ep->com.remote_addr.ss_family == AF_INET) {
857 if (is_t4(ep->com.dev->rdev.lldi.adapter_type)) {
861 if (is_t5(ep->com.dev->rdev.lldi.adapter_type)) {
909 if (is_t4(ep->com.dev->rdev.lldi.adapter_type)) {
914 if (is_t5(ep->com.dev->rdev.lldi.adapter_type)) {
931 set_bit(ACT_OPEN_REQ, &ep->com.history);
932 ret = c4iw_l2t_send(&ep->com.dev->rdev, skb, ep->l2t);
934 if (ret && ep->com.remote_addr.ss_family == AF_INET6)
935 cxgb4_clip_release(ep->com.dev->rdev.lldi.ports[0],
1035 ret = c4iw_l2t_send(&ep->com.dev->rdev, skb, ep->l2t);
1039 __state_set(&ep->com, MPA_REQ_SENT);
1122 return c4iw_l2t_send(&ep->com.dev->rdev, skb, ep->l2t);
1209 __state_set(&ep->com, MPA_REP_SENT);
1211 return c4iw_l2t_send(&ep->com.dev->rdev, skb, ep->l2t);
1229 mutex_lock(&ep->com.mutex);
1234 cxgb4_insert_tid(t, ep, tid, ep->com.local_addr.ss_family);
1244 xa_erase_irq(&ep->com.dev->atids, atid);
1246 set_bit(ACT_ESTAB, &ep->com.history);
1258 mutex_unlock(&ep->com.mutex);
1261 mutex_unlock(&ep->com.mutex);
1275 if (ep->com.cm_id) {
1277 ep, ep->com.cm_id, ep->hwtid);
1278 ep->com.cm_id->event_handler(ep->com.cm_id, &event);
1279 deref_cm_id(&ep->com);
1280 set_bit(CLOSE_UPCALL, &ep->com.history);
1291 if (ep->com.cm_id) {
1293 ep, ep->com.cm_id, ep->hwtid);
1294 ep->com.cm_id->event_handler(ep->com.cm_id, &event);
1295 set_bit(DISCONN_UPCALL, &ep->com.history);
1307 if (ep->com.cm_id) {
1309 ep->com.cm_id, ep->hwtid);
1310 ep->com.cm_id->event_handler(ep->com.cm_id, &event);
1311 deref_cm_id(&ep->com);
1312 set_bit(ABORT_UPCALL, &ep->com.history);
1325 memcpy(&event.local_addr, &ep->com.local_addr,
1326 sizeof(ep->com.local_addr));
1327 memcpy(&event.remote_addr, &ep->com.remote_addr,
1328 sizeof(ep->com.remote_addr));
1342 event.ord = cur_max_read_depth(ep->com.dev);
1343 event.ird = cur_max_read_depth(ep->com.dev);
1352 set_bit(CONN_RPL_UPCALL, &ep->com.history);
1353 ep->com.cm_id->event_handler(ep->com.cm_id, &event);
1356 deref_cm_id(&ep->com);
1367 memcpy(&event.local_addr, &ep->com.local_addr,
1368 sizeof(ep->com.local_addr));
1369 memcpy(&event.remote_addr, &ep->com.remote_addr,
1370 sizeof(ep->com.remote_addr));
1382 event.ord = cur_max_read_depth(ep->com.dev);
1383 event.ird = cur_max_read_depth(ep->com.dev);
1387 c4iw_get_ep(&ep->com);
1388 ret = ep->parent_ep->com.cm_id->event_handler(ep->parent_ep->com.cm_id,
1391 c4iw_put_ep(&ep->com);
1392 set_bit(CONNREQ_UPCALL, &ep->com.history);
1393 c4iw_put_ep(&ep->parent_ep->com);
1406 if (ep->com.cm_id) {
1408 ep->com.cm_id->event_handler(ep->com.cm_id, &event);
1409 set_bit(ESTAB_UPCALL, &ep->com.history);
1441 c4iw_ofld_send(&ep->com.dev->rdev, skb);
1553 __state_set(&ep->com, FPDU_MODE);
1579 ep->com.dev->rdev.lldi.max_ordird_qp)
1643 err = c4iw_modify_qp(ep->com.qp->rhp,
1644 ep->com.qp, mask, &attrs, 1);
1658 err = c4iw_modify_qp(ep->com.qp->rhp, ep->com.qp,
1677 err = c4iw_modify_qp(ep->com.qp->rhp, ep->com.qp,
1794 cur_max_read_depth(ep->com.dev));
1798 cur_max_read_depth(ep->com.dev));
1822 __state_set(&ep->com, MPA_REQ_RCVD);
1825 mutex_lock_nested(&ep->parent_ep->com.mutex, SINGLE_DEPTH_NESTING);
1826 if (ep->parent_ep->com.state != DEAD) {
1832 mutex_unlock(&ep->parent_ep->com.mutex);
1836 mutex_unlock(&ep->parent_ep->com.mutex);
1859 mutex_lock(&ep->com.mutex);
1861 switch (ep->com.state) {
1879 __func__, ep->com.qp->wq.sq.qid, ep,
1880 ep->com.state, ep->hwtid, status);
1882 c4iw_modify_qp(ep->com.qp->rhp, ep->com.qp,
1890 mutex_unlock(&ep->com.mutex);
1893 c4iw_put_ep(&ep->com);
1901 adapter_type = ep->com.dev->rdev.lldi.adapter_type;
1910 if (ep->com.qp->ibqp.uobject)
1911 t4_set_wq_in_error(&ep->com.qp->wq, srqidx);
1913 c4iw_flush_srqidx(ep->com.qp, srqidx);
1931 if (ep->com.qp && ep->com.qp->srq) {
1937 mutex_lock(&ep->com.mutex);
1938 switch (ep->com.state) {
1940 c4iw_wake_up_noref(ep->com.wr_waitp, -ECONNRESET);
1941 __state_set(&ep->com, DEAD);
1945 pr_err("%s ep %p state %d\n", __func__, ep, ep->com.state);
1948 mutex_unlock(&ep->com.mutex);
1954 c4iw_put_ep(&ep->com);
1975 ep->com.dev->rdev.lldi.ports[0],
1977 sin = (struct sockaddr_in *)&ep->com.local_addr;
1980 sin = (struct sockaddr_in *)&ep->com.remote_addr;
1990 cxgb_best_mtu(ep->com.dev->rdev.lldi.mtus, ep->mtu, &mtu_idx,
1992 (ep->com.remote_addr.ss_family == AF_INET) ? 0 : 1);
2016 TX_QUEUE_V(ep->com.dev->rdev.lldi.tx_modq[ep->tx_chan]) |
2029 set_bit(ACT_OFLD_CONN, &ep->com.history);
2030 return c4iw_l2t_send(&ep->com.dev->rdev, skb, ep->l2t);
2159 &ep->com.cm_id->m_local_addr;
2161 &ep->com.cm_id->m_remote_addr;
2163 &ep->com.cm_id->m_local_addr;
2165 &ep->com.cm_id->m_remote_addr;
2169 pr_debug("qp %p cm_id %p\n", ep->com.qp, ep->com.cm_id);
2170 c4iw_init_wr_wait(ep->com.wr_waitp);
2181 size = (CN_MAX_CON_BUF - skb_queue_len(&ep->com.ep_skb_list));
2182 if (alloc_ep_skb_list(&ep->com.ep_skb_list, size)) {
2190 ep->atid = cxgb4_alloc_atid(ep->com.dev->rdev.lldi.tids, ep);
2196 err = xa_insert_irq(&ep->com.dev->atids, ep->atid, ep, GFP_KERNEL);
2201 if (ep->com.cm_id->m_local_addr.ss_family == AF_INET) {
2202 ep->dst = cxgb_find_route(&ep->com.dev->rdev.lldi, get_real_dev,
2206 raddr->sin_port, ep->com.cm_id->tos);
2210 ep->dst = cxgb_find_route6(&ep->com.dev->rdev.lldi,
2216 ep->com.cm_id->tos,
2226 err = import_ep(ep, iptype, ra, ep->dst, ep->com.dev, false,
2227 ep->com.dev->rdev.lldi.adapter_type,
2228 ep->com.cm_id->tos);
2238 state_set(&ep->com, CONNECTING);
2239 ep->tos = ep->com.cm_id->tos;
2250 xa_erase_irq(&ep->com.dev->atids, ep->atid);
2252 cxgb4_free_atid(ep->com.dev->rdev.lldi.tids, ep->atid);
2262 c4iw_put_ep(&ep->com);
2282 la = (struct sockaddr_in *)&ep->com.local_addr;
2283 ra = (struct sockaddr_in *)&ep->com.remote_addr;
2284 la6 = (struct sockaddr_in6 *)&ep->com.local_addr;
2285 ra6 = (struct sockaddr_in6 *)&ep->com.remote_addr;
2300 set_bit(ACT_OPEN_RPL, &ep->com.history);
2313 if (ep->com.local_addr.ss_family == AF_INET &&
2324 set_bit(ACT_RETRY_INUSE, &ep->com.history);
2325 if (ep->com.remote_addr.ss_family == AF_INET6) {
2328 &ep->com.local_addr;
2330 ep->com.dev->rdev.lldi.ports[0],
2334 xa_erase_irq(&ep->com.dev->atids, atid);
2343 if (ep->com.local_addr.ss_family == AF_INET) {
2359 state_set(&ep->com, DEAD);
2361 if (ep->com.remote_addr.ss_family == AF_INET6) {
2363 (struct sockaddr_in6 *)&ep->com.local_addr;
2364 cxgb4_clip_release(ep->com.dev->rdev.lldi.ports[0],
2368 cxgb4_remove_tid(ep->com.dev->rdev.lldi.tids, 0, GET_TID(rpl),
2369 ep->com.local_addr.ss_family);
2371 xa_erase_irq(&ep->com.dev->atids, atid);
2375 c4iw_put_ep(&ep->com);
2392 c4iw_wake_up_noref(ep->com.wr_waitp, status2errno(rpl->status));
2393 c4iw_put_ep(&ep->com);
2409 c4iw_wake_up_noref(ep->com.wr_waitp, status2errno(rpl->status));
2410 c4iw_put_ep(&ep->com);
2425 enum chip_type adapter_type = ep->com.dev->rdev.lldi.adapter_type;
2428 cxgb_best_mtu(ep->com.dev->rdev.lldi.mtus, ep->mtu, &mtu_idx,
2430 (ep->com.remote_addr.ss_family == AF_INET) ? 0 : 1);
2505 return c4iw_l2t_send(&ep->com.dev->rdev, skb, ep->l2t);
2540 if (state_read(&parent_ep->com) != LISTEN) {
2545 if (parent_ep->com.cm_id->tos_set)
2546 tos = parent_ep->com.cm_id->tos;
2550 cxgb_get_4tuple(req, parent_ep->com.dev->rdev.lldi.adapter_type,
2571 &parent_ep->com.local_addr)->sin6_scope_id);
2586 parent_ep->com.dev->rdev.lldi.adapter_type, tos);
2600 skb_queue_head_init(&child_ep->com.ep_skb_list);
2601 if (alloc_ep_skb_list(&child_ep->com.ep_skb_list, CN_MAX_CON_BUF))
2604 state_set(&child_ep->com, CONNECTING);
2605 child_ep->com.dev = dev;
2606 child_ep->com.cm_id = NULL;
2610 &child_ep->com.local_addr;
2616 sin = (struct sockaddr_in *)&child_ep->com.local_addr;
2619 &parent_ep->com.local_addr)->sin_port;
2622 sin = (struct sockaddr_in *)&child_ep->com.remote_addr;
2627 sin6 = (struct sockaddr_in6 *)&child_ep->com.local_addr;
2632 sin6 = (struct sockaddr_in6 *)&child_ep->com.local_addr;
2635 &parent_ep->com.local_addr)->sin6_port;
2638 sin6 = (struct sockaddr_in6 *)&child_ep->com.remote_addr;
2644 c4iw_get_ep(&parent_ep->com);
2655 child_ep->com.local_addr.ss_family);
2658 c4iw_put_ep(&parent_ep->com);
2661 set_bit(PASS_ACCEPT_REQ, &child_ep->com.history);
2664 sin6 = (struct sockaddr_in6 *)&child_ep->com.local_addr;
2665 cxgb4_clip_get(child_ep->com.dev->rdev.lldi.ports[0],
2670 c4iw_put_ep(&child_ep->com);
2675 c4iw_put_ep(&parent_ep->com);
2698 mutex_lock(&ep->com.mutex);
2699 ep->com.state = MPA_REQ_WAIT;
2701 set_bit(PASS_ESTAB, &ep->com.history);
2703 mutex_unlock(&ep->com.mutex);
2706 c4iw_put_ep(&ep->com);
2728 set_bit(PEER_CLOSE, &ep->com.history);
2729 mutex_lock(&ep->com.mutex);
2730 switch (ep->com.state) {
2732 __state_set(&ep->com, CLOSING);
2735 __state_set(&ep->com, CLOSING);
2746 __state_set(&ep->com, CLOSING);
2748 c4iw_wake_up_noref(ep->com.wr_waitp, -ECONNRESET);
2751 __state_set(&ep->com, CLOSING);
2753 c4iw_wake_up_noref(ep->com.wr_waitp, -ECONNRESET);
2757 __state_set(&ep->com, CLOSING);
2759 ret = c4iw_modify_qp(ep->com.qp->rhp, ep->com.qp,
2770 __state_set(&ep->com, MORIBUND);
2775 if (ep->com.cm_id && ep->com.qp) {
2777 c4iw_modify_qp(ep->com.qp->rhp, ep->com.qp,
2781 __state_set(&ep->com, DEAD);
2789 WARN_ONCE(1, "Bad endpoint state %u\n", ep->com.state);
2791 mutex_unlock(&ep->com.mutex);
2796 c4iw_put_ep(&ep->com);
2803 if (ep->com.cm_id && ep->com.qp) {
2807 c4iw_modify_qp(ep->com.qp->rhp, ep->com.qp,
2812 c4iw_put_ep(&ep->com);
2846 ep->com.state);
2847 set_bit(PEER_ABORT, &ep->com.history);
2851 * However, this is not needed if com state is just
2854 if (ep->com.state != MPA_REQ_SENT)
2855 c4iw_wake_up_noref(ep->com.wr_waitp, -ECONNRESET);
2857 mutex_lock(&ep->com.mutex);
2858 switch (ep->com.state) {
2860 c4iw_put_ep(&ep->parent_ep->com);
2893 if (ep->com.qp && ep->com.qp->srq) {
2900 c4iw_get_ep(&ep->com);
2901 __state_set(&ep->com, ABORTING);
2902 set_bit(PEER_ABORT_IN_PROGRESS, &ep->com.flags);
2909 if (ep->com.cm_id && ep->com.qp) {
2911 ret = c4iw_modify_qp(ep->com.qp->rhp,
2912 ep->com.qp, C4IW_QP_ATTR_NEXT_STATE,
2923 mutex_unlock(&ep->com.mutex);
2926 WARN_ONCE(1, "Bad endpoint state %u\n", ep->com.state);
2930 if (ep->com.state != ABORTING) {
2931 __state_set(&ep->com, DEAD);
2936 mutex_unlock(&ep->com.mutex);
2938 rpl_skb = skb_dequeue(&ep->com.ep_skb_list);
2946 c4iw_ofld_send(&ep->com.dev->rdev, rpl_skb);
2951 if (ep->com.remote_addr.ss_family == AF_INET6) {
2954 &ep->com.local_addr;
2956 ep->com.dev->rdev.lldi.ports[0],
2960 xa_erase_irq(&ep->com.dev->hwtids, ep->hwtid);
2961 cxgb4_remove_tid(ep->com.dev->rdev.lldi.tids, 0, ep->hwtid,
2962 ep->com.local_addr.ss_family);
2969 c4iw_put_ep(&ep->com);
2971 c4iw_put_ep(&ep->com);
2990 mutex_lock(&ep->com.mutex);
2991 set_bit(CLOSE_CON_RPL, &ep->com.history);
2992 switch (ep->com.state) {
2994 __state_set(&ep->com, MORIBUND);
2998 if ((ep->com.cm_id) && (ep->com.qp)) {
3000 c4iw_modify_qp(ep->com.qp->rhp,
3001 ep->com.qp,
3006 __state_set(&ep->com, DEAD);
3013 WARN_ONCE(1, "Bad endpoint state %u\n", ep->com.state);
3016 mutex_unlock(&ep->com.mutex);
3019 c4iw_put_ep(&ep->com);
3033 if (ep->com.qp) {
3035 ep->com.qp->wq.sq.qid);
3037 c4iw_modify_qp(ep->com.qp->rhp, ep->com.qp,
3045 c4iw_put_ep(&ep->com);
3072 ep, ep->hwtid, state_read(&ep->com));
3079 ep, ep->hwtid, state_read(&ep->com),
3081 mutex_lock(&ep->com.mutex);
3084 if (test_bit(STOP_MPA_TIMER, &ep->com.flags))
3086 mutex_unlock(&ep->com.mutex);
3089 c4iw_put_ep(&ep->com);
3100 mutex_lock(&ep->com.mutex);
3101 if (ep->com.state != MPA_REQ_RCVD) {
3102 mutex_unlock(&ep->com.mutex);
3103 c4iw_put_ep(&ep->com);
3106 set_bit(ULP_REJECT, &ep->com.history);
3111 mutex_unlock(&ep->com.mutex);
3115 c4iw_put_ep(&ep->com);
3131 mutex_lock(&ep->com.mutex);
3132 if (ep->com.state != MPA_REQ_RCVD) {
3142 set_bit(ULP_ACCEPT, &ep->com.history);
3143 if ((conn_param->ord > cur_max_read_depth(ep->com.dev)) ||
3144 (conn_param->ird > cur_max_read_depth(ep->com.dev))) {
3187 ep->com.cm_id = cm_id;
3188 ref_cm_id(&ep->com);
3189 ep->com.qp = qp;
3206 err = c4iw_modify_qp(ep->com.qp->rhp,
3207 ep->com.qp, mask, &attrs, 1);
3211 set_bit(STOP_MPA_TIMER, &ep->com.flags);
3217 __state_set(&ep->com, FPDU_MODE);
3219 mutex_unlock(&ep->com.mutex);
3220 c4iw_put_ep(&ep->com);
3223 deref_cm_id(&ep->com);
3227 mutex_unlock(&ep->com.mutex);
3230 c4iw_put_ep(&ep->com);
3324 skb_queue_head_init(&ep->com.ep_skb_list);
3325 if (alloc_ep_skb_list(&ep->com.ep_skb_list, CN_MAX_CON_BUF)) {
3341 ep->com.cm_id = cm_id;
3342 ref_cm_id(&ep->com);
3344 ep->com.dev = dev;
3345 ep->com.qp = get_qhp(dev, conn_param->qpn);
3346 if (!ep->com.qp) {
3353 ep->com.qp, cm_id);
3368 memcpy(&ep->com.local_addr, &cm_id->m_local_addr,
3369 sizeof(ep->com.local_addr));
3370 memcpy(&ep->com.remote_addr, &cm_id->m_remote_addr,
3371 sizeof(ep->com.remote_addr));
3373 laddr = (struct sockaddr_in *)&ep->com.local_addr;
3374 raddr = (struct sockaddr_in *)&ep->com.remote_addr;
3375 laddr6 = (struct sockaddr_in6 *)&ep->com.local_addr;
3376 raddr6 = (struct sockaddr_in6 *) &ep->com.remote_addr;
3431 err = import_ep(ep, iptype, ra, ep->dst, ep->com.dev, true,
3432 ep->com.dev->rdev.lldi.adapter_type, cm_id->tos);
3442 state_set(&ep->com, CONNECTING);
3454 xa_erase_irq(&ep->com.dev->atids, ep->atid);
3456 cxgb4_free_atid(ep->com.dev->rdev.lldi.tids, ep->atid);
3458 skb_queue_purge(&ep->com.ep_skb_list);
3459 deref_cm_id(&ep->com);
3461 c4iw_put_ep(&ep->com);
3470 &ep->com.local_addr;
3473 err = cxgb4_clip_get(ep->com.dev->rdev.lldi.ports[0],
3478 c4iw_init_wr_wait(ep->com.wr_waitp);
3479 err = cxgb4_create_server6(ep->com.dev->rdev.lldi.ports[0],
3482 ep->com.dev->rdev.lldi.rxq_ids[0]);
3484 err = c4iw_wait_for_reply(&ep->com.dev->rdev,
3485 ep->com.wr_waitp,
3490 cxgb4_clip_release(ep->com.dev->rdev.lldi.ports[0],
3503 &ep->com.local_addr;
3508 ep->com.dev->rdev.lldi.ports[0], ep->stid,
3510 ep->com.dev->rdev.lldi.rxq_ids[0], 0, 0);
3512 if (c4iw_fatal_error(&ep->com.dev->rdev)) {
3521 c4iw_init_wr_wait(ep->com.wr_waitp);
3522 err = cxgb4_create_server(ep->com.dev->rdev.lldi.ports[0],
3524 0, ep->com.dev->rdev.lldi.rxq_ids[0]);
3526 err = c4iw_wait_for_reply(&ep->com.dev->rdev,
3527 ep->com.wr_waitp,
3553 skb_queue_head_init(&ep->com.ep_skb_list);
3555 ep->com.cm_id = cm_id;
3556 ref_cm_id(&ep->com);
3557 ep->com.dev = dev;
3559 memcpy(&ep->com.local_addr, &cm_id->m_local_addr,
3560 sizeof(ep->com.local_addr));
3566 ep->com.local_addr.ss_family == AF_INET)
3582 state_set(&ep->com, LISTEN);
3583 if (ep->com.local_addr.ss_family == AF_INET)
3591 xa_erase_irq(&ep->com.dev->stids, ep->stid);
3593 cxgb4_free_stid(ep->com.dev->rdev.lldi.tids, ep->stid,
3594 ep->com.local_addr.ss_family);
3596 deref_cm_id(&ep->com);
3597 c4iw_put_ep(&ep->com);
3611 state_set(&ep->com, DEAD);
3612 if (ep->com.dev->rdev.lldi.enable_fw_ofld_conn &&
3613 ep->com.local_addr.ss_family == AF_INET) {
3615 ep->com.dev->rdev.lldi.ports[0], ep->stid,
3616 ep->com.dev->rdev.lldi.rxq_ids[0], false);
3619 c4iw_init_wr_wait(ep->com.wr_waitp);
3621 ep->com.dev->rdev.lldi.ports[0], ep->stid,
3622 ep->com.dev->rdev.lldi.rxq_ids[0],
3623 ep->com.local_addr.ss_family == AF_INET6);
3626 err = c4iw_wait_for_reply(&ep->com.dev->rdev, ep->com.wr_waitp,
3628 sin6 = (struct sockaddr_in6 *)&ep->com.local_addr;
3629 cxgb4_clip_release(ep->com.dev->rdev.lldi.ports[0],
3632 xa_erase_irq(&ep->com.dev->stids, ep->stid);
3633 cxgb4_free_stid(ep->com.dev->rdev.lldi.tids, ep->stid,
3634 ep->com.local_addr.ss_family);
3636 deref_cm_id(&ep->com);
3637 c4iw_put_ep(&ep->com);
3648 mutex_lock(&ep->com.mutex);
3651 states[ep->com.state], abrupt);
3657 c4iw_get_ep(&ep->com);
3659 rdev = &ep->com.dev->rdev;
3663 ep->com.state = DEAD;
3665 switch (ep->com.state) {
3674 ep->com.state = ABORTING;
3676 ep->com.state = CLOSING;
3683 test_bit(STOP_MPA_TIMER, &ep->com.flags)) {
3684 clear_bit(STOP_MPA_TIMER, &ep->com.flags);
3689 set_bit(CLOSE_SENT, &ep->com.flags);
3692 if (!test_and_set_bit(CLOSE_SENT, &ep->com.flags)) {
3696 ep->com.state = ABORTING;
3698 ep->com.state = MORIBUND;
3705 ep, ep->com.state);
3708 WARN_ONCE(1, "Bad endpoint state %u\n", ep->com.state);
3714 set_bit(EP_DISC_ABORT, &ep->com.history);
3717 set_bit(EP_DISC_CLOSE, &ep->com.history);
3721 set_bit(EP_DISC_FAIL, &ep->com.history);
3726 if (ep->com.qp) {
3730 ret = c4iw_modify_qp(ep->com.qp->rhp,
3731 ep->com.qp,
3741 mutex_unlock(&ep->com.mutex);
3742 c4iw_put_ep(&ep->com);
3761 set_bit(ACT_RETRY_NOMEM, &ep->com.history);
3768 set_bit(ACT_RETRY_INUSE, &ep->com.history);
3785 state_set(&ep->com, DEAD);
3786 if (ep->com.remote_addr.ss_family == AF_INET6) {
3788 (struct sockaddr_in6 *)&ep->com.local_addr;
3789 cxgb4_clip_release(ep->com.dev->rdev.lldi.ports[0],
3796 c4iw_put_ep(&ep->com);
3871 c4iw_put_ep(&ep->com); /* from get_ep_from_tid() */
3872 c4iw_put_ep(&ep->com); /* from read_tcb() */
3889 if (test_bit(PEER_ABORT_IN_PROGRESS, &ep->com.flags))
3891 else if (test_bit(ABORT_REQ_IN_PROGRESS, &ep->com.flags))
4196 c4iw_put_ep(&lep->com);
4231 mutex_lock(&ep->com.mutex);
4232 pr_debug("ep %p tid %u state %d\n", ep, ep->hwtid, ep->com.state);
4233 set_bit(TIMEDOUT, &ep->com.history);
4234 switch (ep->com.state) {
4245 if (ep->com.cm_id && ep->com.qp) {
4247 c4iw_modify_qp(ep->com.qp->rhp,
4248 ep->com.qp, C4IW_QP_ATTR_NEXT_STATE,
4265 __func__, ep, ep->hwtid, ep->com.state);
4268 mutex_unlock(&ep->com.mutex);
4271 c4iw_put_ep(&ep->com);
4329 if (!test_and_set_bit(TIMEOUT, &ep->com.flags)) {
4423 pr_debug("ep %p tid %u state %u\n", ep, ep->hwtid, ep->com.state);
4425 c4iw_wake_up_noref(ep->com.wr_waitp, -ECONNRESET);