Lines Matching refs:iser_conn

52 	struct iser_device  *device = iser_task->iser_conn->ib_conn.device;  in iser_prepare_read_cmd()
106 struct iser_device *device = iser_task->iser_conn->ib_conn.device; in iser_prepare_write_cmd()
163 static void iser_create_send_desc(struct iser_conn *iser_conn, in iser_create_send_desc() argument
166 struct iser_device *device = iser_conn->ib_conn.device; in iser_create_send_desc()
182 static void iser_free_login_buf(struct iser_conn *iser_conn) in iser_free_login_buf() argument
184 struct iser_device *device = iser_conn->ib_conn.device; in iser_free_login_buf()
186 if (!iser_conn->login_buf) in iser_free_login_buf()
189 if (iser_conn->login_req_dma) in iser_free_login_buf()
191 iser_conn->login_req_dma, in iser_free_login_buf()
194 if (iser_conn->login_resp_dma) in iser_free_login_buf()
196 iser_conn->login_resp_dma, in iser_free_login_buf()
199 kfree(iser_conn->login_buf); in iser_free_login_buf()
202 iser_conn->login_req_dma = 0; in iser_free_login_buf()
203 iser_conn->login_resp_dma = 0; in iser_free_login_buf()
204 iser_conn->login_buf = NULL; in iser_free_login_buf()
207 static int iser_alloc_login_buf(struct iser_conn *iser_conn) in iser_alloc_login_buf() argument
209 struct iser_device *device = iser_conn->ib_conn.device; in iser_alloc_login_buf()
214 iser_conn->login_buf = kmalloc(ISCSI_DEF_MAX_RECV_SEG_LEN + in iser_alloc_login_buf()
216 if (!iser_conn->login_buf) in iser_alloc_login_buf()
219 iser_conn->login_req_buf = iser_conn->login_buf; in iser_alloc_login_buf()
220 iser_conn->login_resp_buf = iser_conn->login_buf + in iser_alloc_login_buf()
223 iser_conn->login_req_dma = ib_dma_map_single(device->ib_device, in iser_alloc_login_buf()
224 iser_conn->login_req_buf, in iser_alloc_login_buf()
228 iser_conn->login_resp_dma = ib_dma_map_single(device->ib_device, in iser_alloc_login_buf()
229 iser_conn->login_resp_buf, in iser_alloc_login_buf()
234 iser_conn->login_req_dma); in iser_alloc_login_buf()
236 iser_conn->login_resp_dma); in iser_alloc_login_buf()
240 iser_conn->login_req_dma = 0; in iser_alloc_login_buf()
242 iser_conn->login_resp_dma = 0; in iser_alloc_login_buf()
248 iser_free_login_buf(iser_conn); in iser_alloc_login_buf()
255 int iser_alloc_rx_descriptors(struct iser_conn *iser_conn, in iser_alloc_rx_descriptors() argument
262 struct ib_conn *ib_conn = &iser_conn->ib_conn; in iser_alloc_rx_descriptors()
265 iser_conn->qp_max_recv_dtos = session->cmds_max; in iser_alloc_rx_descriptors()
266 iser_conn->qp_max_recv_dtos_mask = session->cmds_max - 1; /* cmds_max is 2^N */ in iser_alloc_rx_descriptors()
267 iser_conn->min_posted_rx = iser_conn->qp_max_recv_dtos >> 2; in iser_alloc_rx_descriptors()
272 if (iser_alloc_login_buf(iser_conn)) in iser_alloc_rx_descriptors()
275 iser_conn->num_rx_descs = session->cmds_max; in iser_alloc_rx_descriptors()
276 iser_conn->rx_descs = kmalloc(iser_conn->num_rx_descs * in iser_alloc_rx_descriptors()
278 if (!iser_conn->rx_descs) in iser_alloc_rx_descriptors()
281 rx_desc = iser_conn->rx_descs; in iser_alloc_rx_descriptors()
283 for (i = 0; i < iser_conn->qp_max_recv_dtos; i++, rx_desc++) { in iser_alloc_rx_descriptors()
297 iser_conn->rx_desc_head = 0; in iser_alloc_rx_descriptors()
301 rx_desc = iser_conn->rx_descs; in iser_alloc_rx_descriptors()
305 kfree(iser_conn->rx_descs); in iser_alloc_rx_descriptors()
306 iser_conn->rx_descs = NULL; in iser_alloc_rx_descriptors()
308 iser_free_login_buf(iser_conn); in iser_alloc_rx_descriptors()
316 void iser_free_rx_descriptors(struct iser_conn *iser_conn) in iser_free_rx_descriptors() argument
320 struct ib_conn *ib_conn = &iser_conn->ib_conn; in iser_free_rx_descriptors()
326 rx_desc = iser_conn->rx_descs; in iser_free_rx_descriptors()
327 for (i = 0; i < iser_conn->qp_max_recv_dtos; i++, rx_desc++) in iser_free_rx_descriptors()
330 kfree(iser_conn->rx_descs); in iser_free_rx_descriptors()
332 iser_conn->rx_descs = NULL; in iser_free_rx_descriptors()
334 iser_free_login_buf(iser_conn); in iser_free_rx_descriptors()
339 struct iser_conn *iser_conn = conn->dd_data; in iser_post_rx_bufs() local
340 struct ib_conn *ib_conn = &iser_conn->ib_conn; in iser_post_rx_bufs()
359 iser_conn->min_posted_rx); in iser_post_rx_bufs()
362 if (iser_post_recvm(iser_conn, iser_conn->min_posted_rx)) in iser_post_rx_bufs()
379 struct iser_conn *iser_conn = conn->dd_data; in iser_send_command() local
387 u8 sig_count = ++iser_conn->ib_conn.sig_count; in iser_send_command()
393 iser_create_send_desc(iser_conn, tx_desc); in iser_send_command()
433 err = iser_post_send(&iser_conn->ib_conn, tx_desc, in iser_send_command()
450 struct iser_conn *iser_conn = conn->dd_data; in iser_send_data_out() local
501 err = iser_post_send(&iser_conn->ib_conn, tx_desc, true); in iser_send_data_out()
514 struct iser_conn *iser_conn = conn->dd_data; in iser_send_control() local
523 iser_create_send_desc(iser_conn, mdesc); in iser_send_control()
525 device = iser_conn->ib_conn.device; in iser_send_control()
537 iser_conn->login_req_dma, task->data_count, in iser_send_control()
540 memcpy(iser_conn->login_req_buf, task->data, task->data_count); in iser_send_control()
543 iser_conn->login_req_dma, task->data_count, in iser_send_control()
546 tx_dsg->addr = iser_conn->login_req_dma; in iser_send_control()
555 err = iser_post_recvl(iser_conn); in iser_send_control()
563 err = iser_post_send(&iser_conn->ib_conn, mdesc, true); in iser_send_control()
579 struct iser_conn *iser_conn = container_of(ib_conn, struct iser_conn, in iser_rcv_completion() local
586 if ((char *)rx_desc == iser_conn->login_resp_buf) { in iser_rcv_completion()
587 rx_dma = iser_conn->login_resp_dma; in iser_rcv_completion()
602 iscsi_iser_recv(iser_conn->iscsi_conn, hdr, rx_desc->data, in iser_rcv_completion()
614 if (rx_dma == iser_conn->login_resp_dma) in iser_rcv_completion()
618 if (outstanding + iser_conn->min_posted_rx <= iser_conn->qp_max_recv_dtos) { in iser_rcv_completion()
619 count = min(iser_conn->qp_max_recv_dtos - outstanding, in iser_rcv_completion()
620 iser_conn->min_posted_rx); in iser_rcv_completion()
621 err = iser_post_recvm(iser_conn, count); in iser_rcv_completion()
671 struct iser_device *device = iser_task->iser_conn->ib_conn.device; in iser_task_rdma_finalize()