Lines Matching refs:iser_conn

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()
176 static void iser_free_login_buf(struct iser_conn *iser_conn) in iser_free_login_buf() argument
178 struct iser_device *device = iser_conn->ib_conn.device; in iser_free_login_buf()
179 struct iser_login_desc *desc = &iser_conn->login_desc; in iser_free_login_buf()
198 static int iser_alloc_login_buf(struct iser_conn *iser_conn) in iser_alloc_login_buf() argument
200 struct iser_device *device = iser_conn->ib_conn.device; in iser_alloc_login_buf()
201 struct iser_login_desc *desc = &iser_conn->login_desc; in iser_alloc_login_buf()
239 int iser_alloc_rx_descriptors(struct iser_conn *iser_conn, in iser_alloc_rx_descriptors() argument
246 struct ib_conn *ib_conn = &iser_conn->ib_conn; in iser_alloc_rx_descriptors()
249 iser_conn->qp_max_recv_dtos = session->cmds_max; in iser_alloc_rx_descriptors()
250 iser_conn->qp_max_recv_dtos_mask = session->cmds_max - 1; /* cmds_max is 2^N */ in iser_alloc_rx_descriptors()
251 iser_conn->min_posted_rx = iser_conn->qp_max_recv_dtos >> 2; in iser_alloc_rx_descriptors()
254 iser_conn->pages_per_mr)) in iser_alloc_rx_descriptors()
257 if (iser_alloc_login_buf(iser_conn)) in iser_alloc_rx_descriptors()
260 iser_conn->num_rx_descs = session->cmds_max; in iser_alloc_rx_descriptors()
261 iser_conn->rx_descs = kmalloc_array(iser_conn->num_rx_descs, in iser_alloc_rx_descriptors()
264 if (!iser_conn->rx_descs) in iser_alloc_rx_descriptors()
267 rx_desc = iser_conn->rx_descs; in iser_alloc_rx_descriptors()
269 for (i = 0; i < iser_conn->qp_max_recv_dtos; i++, rx_desc++) { in iser_alloc_rx_descriptors()
283 iser_conn->rx_desc_head = 0; in iser_alloc_rx_descriptors()
287 rx_desc = iser_conn->rx_descs; in iser_alloc_rx_descriptors()
291 kfree(iser_conn->rx_descs); in iser_alloc_rx_descriptors()
292 iser_conn->rx_descs = NULL; in iser_alloc_rx_descriptors()
294 iser_free_login_buf(iser_conn); in iser_alloc_rx_descriptors()
302 void iser_free_rx_descriptors(struct iser_conn *iser_conn) in iser_free_rx_descriptors() argument
306 struct ib_conn *ib_conn = &iser_conn->ib_conn; in iser_free_rx_descriptors()
312 rx_desc = iser_conn->rx_descs; in iser_free_rx_descriptors()
313 for (i = 0; i < iser_conn->qp_max_recv_dtos; i++, rx_desc++) in iser_free_rx_descriptors()
316 kfree(iser_conn->rx_descs); in iser_free_rx_descriptors()
318 iser_conn->rx_descs = NULL; in iser_free_rx_descriptors()
320 iser_free_login_buf(iser_conn); in iser_free_rx_descriptors()
325 struct iser_conn *iser_conn = conn->dd_data; in iser_post_rx_bufs() local
326 struct ib_conn *ib_conn = &iser_conn->ib_conn; in iser_post_rx_bufs()
345 iser_conn->min_posted_rx); in iser_post_rx_bufs()
348 if (iser_post_recvm(iser_conn, iser_conn->min_posted_rx)) in iser_post_rx_bufs()
365 struct iser_conn *iser_conn = conn->dd_data; in iser_send_command() local
373 u8 sig_count = ++iser_conn->ib_conn.sig_count; in iser_send_command()
380 iser_create_send_desc(iser_conn, tx_desc); in iser_send_command()
420 err = iser_post_send(&iser_conn->ib_conn, tx_desc, in iser_send_command()
437 struct iser_conn *iser_conn = conn->dd_data; in iser_send_data_out() local
486 err = iser_post_send(&iser_conn->ib_conn, tx_desc, true); in iser_send_data_out()
499 struct iser_conn *iser_conn = conn->dd_data; in iser_send_control() local
509 iser_create_send_desc(iser_conn, mdesc); in iser_send_control()
511 device = iser_conn->ib_conn.device; in iser_send_control()
516 struct iser_login_desc *desc = &iser_conn->login_desc; in iser_send_control()
541 err = iser_post_recvl(iser_conn); in iser_send_control()
549 err = iser_post_send(&iser_conn->ib_conn, mdesc, true); in iser_send_control()
561 struct iser_conn *iser_conn = to_iser_conn(ib_conn); in iser_login_rsp() local
583 iscsi_iser_recv(iser_conn->iscsi_conn, hdr, data, length); in iser_login_rsp()
607 iser_check_remote_inv(struct iser_conn *iser_conn, in iser_check_remote_inv() argument
616 iser_conn, rkey); in iser_check_remote_inv()
618 if (unlikely(!iser_conn->snd_w_inv)) { in iser_check_remote_inv()
620 iser_conn); in iser_check_remote_inv()
624 task = iscsi_itt_to_ctask(iser_conn->iscsi_conn, hdr->itt); in iser_check_remote_inv()
653 struct iser_conn *iser_conn = to_iser_conn(ib_conn); in iser_task_rsp() local
674 if (iser_check_remote_inv(iser_conn, wc, hdr)) { in iser_task_rsp()
675 iscsi_conn_failure(iser_conn->iscsi_conn, in iser_task_rsp()
680 iscsi_iser_recv(iser_conn->iscsi_conn, hdr, desc->data, length); in iser_task_rsp()
693 if (outstanding + iser_conn->min_posted_rx <= iser_conn->qp_max_recv_dtos) { in iser_task_rsp()
694 count = min(iser_conn->qp_max_recv_dtos - outstanding, in iser_task_rsp()
695 iser_conn->min_posted_rx); in iser_task_rsp()
696 err = iser_post_recvm(iser_conn, count); in iser_task_rsp()