Lines Matching refs:iser_conn
102 iser_create_send_desc(struct iser_conn *iser_conn, in iser_create_send_desc() argument
105 struct iser_device *device = iser_conn->ib_conn.device; in iser_create_send_desc()
122 iser_free_login_buf(struct iser_conn *iser_conn) in iser_free_login_buf() argument
124 struct iser_device *device = iser_conn->ib_conn.device; in iser_free_login_buf()
126 if (!iser_conn->login_buf) in iser_free_login_buf()
129 if (iser_conn->login_req_dma) in iser_free_login_buf()
131 iser_conn->login_req_dma, in iser_free_login_buf()
134 if (iser_conn->login_resp_dma) in iser_free_login_buf()
136 iser_conn->login_resp_dma, in iser_free_login_buf()
139 free(iser_conn->login_buf, M_ISER_INITIATOR); in iser_free_login_buf()
142 iser_conn->login_req_dma = 0; in iser_free_login_buf()
143 iser_conn->login_resp_dma = 0; in iser_free_login_buf()
144 iser_conn->login_buf = NULL; in iser_free_login_buf()
148 iser_alloc_login_buf(struct iser_conn *iser_conn) in iser_alloc_login_buf() argument
150 struct iser_device *device = iser_conn->ib_conn.device; in iser_alloc_login_buf()
155 iser_conn->login_buf = malloc(ISCSI_DEF_MAX_RECV_SEG_LEN + ISER_RX_LOGIN_SIZE, in iser_alloc_login_buf()
158 if (!iser_conn->login_buf) in iser_alloc_login_buf()
161 iser_conn->login_req_buf = iser_conn->login_buf; in iser_alloc_login_buf()
162 iser_conn->login_resp_buf = iser_conn->login_buf + in iser_alloc_login_buf()
165 iser_conn->login_req_dma = ib_dma_map_single(device->ib_device, in iser_alloc_login_buf()
166 iser_conn->login_req_buf, in iser_alloc_login_buf()
170 iser_conn->login_resp_dma = ib_dma_map_single(device->ib_device, in iser_alloc_login_buf()
171 iser_conn->login_resp_buf, in iser_alloc_login_buf()
176 iser_conn->login_req_dma); in iser_alloc_login_buf()
178 iser_conn->login_resp_dma); in iser_alloc_login_buf()
182 iser_conn->login_req_dma = 0; in iser_alloc_login_buf()
184 iser_conn->login_resp_dma = 0; in iser_alloc_login_buf()
191 iser_free_login_buf(iser_conn); in iser_alloc_login_buf()
198 int iser_alloc_rx_descriptors(struct iser_conn *iser_conn, int cmds_max) in iser_alloc_rx_descriptors() argument
204 struct ib_conn *ib_conn = &iser_conn->ib_conn; in iser_alloc_rx_descriptors()
207 iser_conn->qp_max_recv_dtos = cmds_max; in iser_alloc_rx_descriptors()
208 iser_conn->min_posted_rx = iser_conn->qp_max_recv_dtos >> 2; in iser_alloc_rx_descriptors()
214 iser_conn->num_rx_descs = cmds_max; in iser_alloc_rx_descriptors()
215 iser_conn->rx_descs = malloc(iser_conn->num_rx_descs * in iser_alloc_rx_descriptors()
218 if (!iser_conn->rx_descs) in iser_alloc_rx_descriptors()
221 rx_desc = iser_conn->rx_descs; in iser_alloc_rx_descriptors()
223 for (i = 0; i < iser_conn->qp_max_recv_dtos; i++, rx_desc++) { in iser_alloc_rx_descriptors()
237 iser_conn->rx_desc_head = 0; in iser_alloc_rx_descriptors()
242 rx_desc = iser_conn->rx_descs; in iser_alloc_rx_descriptors()
246 free(iser_conn->rx_descs, M_ISER_INITIATOR); in iser_alloc_rx_descriptors()
247 iser_conn->rx_descs = NULL; in iser_alloc_rx_descriptors()
257 iser_free_rx_descriptors(struct iser_conn *iser_conn) in iser_free_rx_descriptors() argument
261 struct ib_conn *ib_conn = &iser_conn->ib_conn; in iser_free_rx_descriptors()
266 rx_desc = iser_conn->rx_descs; in iser_free_rx_descriptors()
267 for (i = 0; i < iser_conn->qp_max_recv_dtos; i++, rx_desc++) in iser_free_rx_descriptors()
271 free(iser_conn->rx_descs, M_ISER_INITIATOR); in iser_free_rx_descriptors()
274 iser_conn->rx_descs = NULL; in iser_free_rx_descriptors()
358 iser_send_command(struct iser_conn *iser_conn, in iser_send_command() argument
366 u8 sig_count = ++iser_conn->ib_conn.sig_count; in iser_send_command()
370 iser_create_send_desc(iser_conn, tx_desc); in iser_send_command()
397 err = iser_post_send(&iser_conn->ib_conn, tx_desc, in iser_send_command()
403 ISER_ERR("iser_conn %p itt %u len %u err %d", iser_conn, in iser_send_command()
411 iser_send_control(struct iser_conn *iser_conn, in iser_send_control() argument
423 iser_create_send_desc(iser_conn, mdesc); in iser_send_control()
425 device = iser_conn->ib_conn.device; in iser_send_control()
430 iser_conn->login_req_dma, datalen, in iser_send_control()
434 iser_conn->login_req_dma, datalen, in iser_send_control()
437 tx_dsg->addr = iser_conn->login_req_dma; in iser_send_control()
444 if (!iser_conn->handoff_done) { in iser_send_control()
445 err = iser_post_recvl(iser_conn); in iser_send_control()
450 err = iser_post_send(&iser_conn->ib_conn, mdesc, true); in iser_send_control()
455 ISER_ERR("conn %p failed err %d", iser_conn, err); in iser_send_control()
469 struct iser_conn *iser_conn = container_of(ib_conn, struct iser_conn, in iser_rcv_completion() local
471 struct icl_conn *ic = &iser_conn->icl_conn; in iser_rcv_completion()
479 if ((char *)rx_desc == iser_conn->login_resp_buf) { in iser_rcv_completion()
480 rx_dma = iser_conn->login_resp_dma; in iser_rcv_completion()
512 if (rx_dma == iser_conn->login_resp_dma) in iser_rcv_completion()
516 if (outstanding + iser_conn->min_posted_rx <= iser_conn->qp_max_recv_dtos) { in iser_rcv_completion()
517 count = min(iser_conn->qp_max_recv_dtos - outstanding, in iser_rcv_completion()
518 iser_conn->min_posted_rx); in iser_rcv_completion()
519 err = iser_post_recvm(iser_conn, count); in iser_rcv_completion()
533 struct iser_conn *iser_conn = iser_pdu->iser_conn; in iser_snd_completion() local
536 iser_pdu_free(&iser_conn->icl_conn, &iser_pdu->icl_pdu); in iser_snd_completion()