Lines Matching refs:ib_conn

207 int iser_alloc_fmr_pool(struct ib_conn *ib_conn,  in iser_alloc_fmr_pool()  argument
211 struct iser_device *device = ib_conn->device; in iser_alloc_fmr_pool()
212 struct iser_fr_pool *fr_pool = &ib_conn->fr_pool; in iser_alloc_fmr_pool()
271 void iser_free_fmr_pool(struct ib_conn *ib_conn) in iser_free_fmr_pool() argument
273 struct iser_fr_pool *fr_pool = &ib_conn->fr_pool; in iser_free_fmr_pool()
281 ib_conn, desc->rsc.fmr_pool); in iser_free_fmr_pool()
398 int iser_alloc_fastreg_pool(struct ib_conn *ib_conn, in iser_alloc_fastreg_pool() argument
402 struct iser_device *device = ib_conn->device; in iser_alloc_fastreg_pool()
403 struct iser_fr_pool *fr_pool = &ib_conn->fr_pool; in iser_alloc_fastreg_pool()
412 ib_conn->pi_support, size); in iser_alloc_fastreg_pool()
425 iser_free_fastreg_pool(ib_conn); in iser_alloc_fastreg_pool()
432 void iser_free_fastreg_pool(struct ib_conn *ib_conn) in iser_free_fastreg_pool() argument
434 struct iser_fr_pool *fr_pool = &ib_conn->fr_pool; in iser_free_fastreg_pool()
441 iser_info("freeing conn %p fr pool\n", ib_conn); in iser_free_fastreg_pool()
462 static int iser_create_ib_conn_res(struct ib_conn *ib_conn) in iser_create_ib_conn_res() argument
464 struct iser_conn *iser_conn = container_of(ib_conn, struct iser_conn, in iser_create_ib_conn_res()
465 ib_conn); in iser_create_ib_conn_res()
472 BUG_ON(ib_conn->device == NULL); in iser_create_ib_conn_res()
474 device = ib_conn->device; in iser_create_ib_conn_res()
486 ib_conn->comp = &device->comps[min_index]; in iser_create_ib_conn_res()
487 ib_conn->comp->active_qps++; in iser_create_ib_conn_res()
489 iser_info("cq index %d used for ib_conn %p\n", min_index, ib_conn); in iser_create_ib_conn_res()
492 init_attr.qp_context = (void *)ib_conn; in iser_create_ib_conn_res()
493 init_attr.send_cq = ib_conn->comp->cq; in iser_create_ib_conn_res()
494 init_attr.recv_cq = ib_conn->comp->cq; in iser_create_ib_conn_res()
500 if (ib_conn->pi_support) { in iser_create_ib_conn_res()
519 ret = rdma_create_qp(ib_conn->cma_id, device->pd, &init_attr); in iser_create_ib_conn_res()
523 ib_conn->qp = ib_conn->cma_id->qp; in iser_create_ib_conn_res()
525 ib_conn, ib_conn->cma_id, in iser_create_ib_conn_res()
526 ib_conn->cma_id->qp); in iser_create_ib_conn_res()
531 ib_conn->comp->active_qps--; in iser_create_ib_conn_res()
637 struct ib_conn *ib_conn = &iser_conn->ib_conn; in iser_free_ib_conn_res() local
638 struct iser_device *device = ib_conn->device; in iser_free_ib_conn_res()
641 iser_conn, ib_conn->cma_id, ib_conn->qp); in iser_free_ib_conn_res()
643 if (ib_conn->qp != NULL) { in iser_free_ib_conn_res()
644 ib_conn->comp->active_qps--; in iser_free_ib_conn_res()
645 rdma_destroy_qp(ib_conn->cma_id); in iser_free_ib_conn_res()
646 ib_conn->qp = NULL; in iser_free_ib_conn_res()
655 ib_conn->device = NULL; in iser_free_ib_conn_res()
665 struct ib_conn *ib_conn = &iser_conn->ib_conn; in iser_conn_release() local
686 if (ib_conn->cma_id != NULL) { in iser_conn_release()
687 rdma_destroy_id(ib_conn->cma_id); in iser_conn_release()
688 ib_conn->cma_id = NULL; in iser_conn_release()
700 struct ib_conn *ib_conn = &iser_conn->ib_conn; in iser_conn_terminate() local
720 if (ib_conn->cma_id) { in iser_conn_terminate()
721 err = rdma_disconnect(ib_conn->cma_id); in iser_conn_terminate()
727 err = ib_post_send(ib_conn->qp, &ib_conn->beacon, &bad_wr); in iser_conn_terminate()
729 iser_err("conn %p failed to post beacon", ib_conn); in iser_conn_terminate()
733 wait_for_completion(&ib_conn->flush_comp); in iser_conn_terminate()
754 struct iser_device *device = iser_conn->ib_conn.device; in iser_calc_scsi_params()
782 struct ib_conn *ib_conn; in iser_addr_handler() local
790 ib_conn = &iser_conn->ib_conn; in iser_addr_handler()
798 ib_conn->device = device; in iser_addr_handler()
806 ib_conn->device->ib_device->name); in iser_addr_handler()
807 ib_conn->pi_support = false; in iser_addr_handler()
809 ib_conn->pi_support = true; in iser_addr_handler()
832 struct ib_conn *ib_conn = &iser_conn->ib_conn; in iser_route_handler() local
833 struct iser_device *device = ib_conn->device; in iser_route_handler()
839 ret = iser_create_ib_conn_res(ib_conn); in iser_route_handler()
954 iser_conn->ib_conn.cma_id = NULL; in iser_cma_handler()
971 iser_conn->ib_conn.post_recv_buf_count = 0; in iser_conn_init()
972 init_completion(&iser_conn->ib_conn.flush_comp); in iser_conn_init()
989 struct ib_conn *ib_conn = &iser_conn->ib_conn; in iser_connect() local
999 ib_conn->device = NULL; in iser_connect()
1003 ib_conn->beacon.wr_id = ISER_BEACON_WRID; in iser_connect()
1004 ib_conn->beacon.opcode = IB_WR_SEND; in iser_connect()
1006 ib_conn->cma_id = rdma_create_id(&init_net, iser_cma_handler, in iser_connect()
1009 if (IS_ERR(ib_conn->cma_id)) { in iser_connect()
1010 err = PTR_ERR(ib_conn->cma_id); in iser_connect()
1015 err = rdma_resolve_addr(ib_conn->cma_id, src_addr, dst_addr, 1000); in iser_connect()
1037 ib_conn->cma_id = NULL; in iser_connect()
1049 struct ib_conn *ib_conn = &iser_conn->ib_conn; in iser_post_recvl() local
1055 sge.lkey = ib_conn->device->pd->local_dma_lkey; in iser_post_recvl()
1062 ib_conn->post_recv_buf_count++; in iser_post_recvl()
1063 ib_ret = ib_post_recv(ib_conn->qp, &rx_wr, &rx_wr_failed); in iser_post_recvl()
1066 ib_conn->post_recv_buf_count--; in iser_post_recvl()
1075 struct ib_conn *ib_conn = &iser_conn->ib_conn; in iser_post_recvm() local
1079 for (rx_wr = ib_conn->rx_wr, i = 0; i < count; i++, rx_wr++) { in iser_post_recvm()
1091 ib_conn->post_recv_buf_count += count; in iser_post_recvm()
1092 ib_ret = ib_post_recv(ib_conn->qp, ib_conn->rx_wr, &rx_wr_failed); in iser_post_recvm()
1095 ib_conn->post_recv_buf_count -= count; in iser_post_recvm()
1107 int iser_post_send(struct ib_conn *ib_conn, struct iser_tx_desc *tx_desc, in iser_post_send() argument
1113 ib_dma_sync_single_for_device(ib_conn->device->ib_device, in iser_post_send()
1124 ib_ret = ib_post_send(ib_conn->qp, &tx_desc->wrs[0].send, &bad_wr); in iser_post_send()
1166 iser_handle_comp_error(struct ib_conn *ib_conn, in iser_handle_comp_error() argument
1170 struct iser_conn *iser_conn = container_of(ib_conn, struct iser_conn, in iser_handle_comp_error()
1171 ib_conn); in iser_handle_comp_error()
1187 ib_conn->post_recv_buf_count--; in iser_handle_comp_error()
1201 struct ib_conn *ib_conn; in iser_handle_wc() local
1205 ib_conn = wc->qp->qp_context; in iser_handle_wc()
1210 ib_conn); in iser_handle_wc()
1214 iser_snd_completion(tx_desc, ib_conn); in iser_handle_wc()
1230 complete(&ib_conn->flush_comp); in iser_handle_wc()
1232 iser_handle_comp_error(ib_conn, wc); in iser_handle_wc()