iser_conn 186 drivers/infiniband/ulp/iser/iscsi_iser.c struct iser_conn *iser_conn = task->conn->dd_data; iser_conn 187 drivers/infiniband/ulp/iser/iscsi_iser.c struct iser_device *device = iser_conn->ib_conn.device; iser_conn 194 drivers/infiniband/ulp/iser/iscsi_iser.c mutex_lock(&iser_conn->state_mutex); iser_conn 196 drivers/infiniband/ulp/iser/iscsi_iser.c if (unlikely(iser_conn->state != ISER_CONN_UP)) { iser_conn 216 drivers/infiniband/ulp/iser/iscsi_iser.c iser_task->iser_conn = iser_conn; iser_conn 219 drivers/infiniband/ulp/iser/iscsi_iser.c mutex_unlock(&iser_conn->state_mutex); iser_conn 371 drivers/infiniband/ulp/iser/iscsi_iser.c struct iser_conn *iser_conn = task->conn->dd_data; iser_conn 372 drivers/infiniband/ulp/iser/iscsi_iser.c struct iser_device *device = iser_conn->ib_conn.device; iser_conn 463 drivers/infiniband/ulp/iser/iscsi_iser.c struct iser_conn *iser_conn; iser_conn 479 drivers/infiniband/ulp/iser/iscsi_iser.c iser_conn = ep->dd_data; iser_conn 481 drivers/infiniband/ulp/iser/iscsi_iser.c mutex_lock(&iser_conn->state_mutex); iser_conn 482 drivers/infiniband/ulp/iser/iscsi_iser.c if (iser_conn->state != ISER_CONN_UP) { iser_conn 485 drivers/infiniband/ulp/iser/iscsi_iser.c iser_conn, iser_conn->state); iser_conn 489 drivers/infiniband/ulp/iser/iscsi_iser.c error = iser_alloc_rx_descriptors(iser_conn, conn->session); iser_conn 496 drivers/infiniband/ulp/iser/iscsi_iser.c iser_info("binding iscsi conn %p to iser_conn %p\n", conn, iser_conn); iser_conn 498 drivers/infiniband/ulp/iser/iscsi_iser.c conn->dd_data = iser_conn; iser_conn 499 drivers/infiniband/ulp/iser/iscsi_iser.c iser_conn->iscsi_conn = conn; iser_conn 502 drivers/infiniband/ulp/iser/iscsi_iser.c mutex_unlock(&iser_conn->state_mutex); iser_conn 518 drivers/infiniband/ulp/iser/iscsi_iser.c struct iser_conn *iser_conn; iser_conn 521 drivers/infiniband/ulp/iser/iscsi_iser.c iser_conn = iscsi_conn->dd_data; iser_conn 522 drivers/infiniband/ulp/iser/iscsi_iser.c reinit_completion(&iser_conn->stop_completion); iser_conn 541 drivers/infiniband/ulp/iser/iscsi_iser.c struct iser_conn *iser_conn = conn->dd_data; iser_conn 543 drivers/infiniband/ulp/iser/iscsi_iser.c iser_info("stopping iscsi_conn: %p, iser_conn: %p\n", conn, iser_conn); iser_conn 549 drivers/infiniband/ulp/iser/iscsi_iser.c if (iser_conn) { iser_conn 550 drivers/infiniband/ulp/iser/iscsi_iser.c mutex_lock(&iser_conn->state_mutex); iser_conn 552 drivers/infiniband/ulp/iser/iscsi_iser.c iser_conn_terminate(iser_conn); iser_conn 556 drivers/infiniband/ulp/iser/iscsi_iser.c iser_conn->iscsi_conn = NULL; iser_conn 560 drivers/infiniband/ulp/iser/iscsi_iser.c complete(&iser_conn->stop_completion); iser_conn 561 drivers/infiniband/ulp/iser/iscsi_iser.c mutex_unlock(&iser_conn->state_mutex); iser_conn 612 drivers/infiniband/ulp/iser/iscsi_iser.c struct iser_conn *iser_conn = NULL; iser_conn 632 drivers/infiniband/ulp/iser/iscsi_iser.c iser_conn = ep->dd_data; iser_conn 633 drivers/infiniband/ulp/iser/iscsi_iser.c shost->sg_tablesize = iser_conn->scsi_sg_tablesize; iser_conn 634 drivers/infiniband/ulp/iser/iscsi_iser.c shost->can_queue = min_t(u16, cmds_max, iser_conn->max_cmds); iser_conn 636 drivers/infiniband/ulp/iser/iscsi_iser.c mutex_lock(&iser_conn->state_mutex); iser_conn 637 drivers/infiniband/ulp/iser/iscsi_iser.c if (iser_conn->state != ISER_CONN_UP) { iser_conn 639 drivers/infiniband/ulp/iser/iscsi_iser.c iser_conn); iser_conn 640 drivers/infiniband/ulp/iser/iscsi_iser.c mutex_unlock(&iser_conn->state_mutex); iser_conn 644 drivers/infiniband/ulp/iser/iscsi_iser.c ib_conn = &iser_conn->ib_conn; iser_conn 659 drivers/infiniband/ulp/iser/iscsi_iser.c mutex_unlock(&iser_conn->state_mutex); iser_conn 662 drivers/infiniband/ulp/iser/iscsi_iser.c mutex_unlock(&iser_conn->state_mutex); iser_conn 673 drivers/infiniband/ulp/iser/iscsi_iser.c iser_conn, shost->sg_tablesize, iser_conn 768 drivers/infiniband/ulp/iser/iscsi_iser.c struct iser_conn *iser_conn = ep->dd_data; iser_conn 773 drivers/infiniband/ulp/iser/iscsi_iser.c if (!iser_conn || !iser_conn->ib_conn.cma_id) iser_conn 777 drivers/infiniband/ulp/iser/iscsi_iser.c &iser_conn->ib_conn.cma_id->route.addr.dst_addr, iser_conn 805 drivers/infiniband/ulp/iser/iscsi_iser.c struct iser_conn *iser_conn; iser_conn 812 drivers/infiniband/ulp/iser/iscsi_iser.c iser_conn = kzalloc(sizeof(*iser_conn), GFP_KERNEL); iser_conn 813 drivers/infiniband/ulp/iser/iscsi_iser.c if (!iser_conn) { iser_conn 818 drivers/infiniband/ulp/iser/iscsi_iser.c ep->dd_data = iser_conn; iser_conn 819 drivers/infiniband/ulp/iser/iscsi_iser.c iser_conn->ep = ep; iser_conn 820 drivers/infiniband/ulp/iser/iscsi_iser.c iser_conn_init(iser_conn); iser_conn 822 drivers/infiniband/ulp/iser/iscsi_iser.c err = iser_connect(iser_conn, NULL, dst_addr, non_blocking); iser_conn 848 drivers/infiniband/ulp/iser/iscsi_iser.c struct iser_conn *iser_conn = ep->dd_data; iser_conn 851 drivers/infiniband/ulp/iser/iscsi_iser.c rc = wait_for_completion_interruptible_timeout(&iser_conn->up_completion, iser_conn 855 drivers/infiniband/ulp/iser/iscsi_iser.c mutex_lock(&iser_conn->state_mutex); iser_conn 856 drivers/infiniband/ulp/iser/iscsi_iser.c if (iser_conn->state == ISER_CONN_TERMINATING || iser_conn 857 drivers/infiniband/ulp/iser/iscsi_iser.c iser_conn->state == ISER_CONN_DOWN) iser_conn 859 drivers/infiniband/ulp/iser/iscsi_iser.c mutex_unlock(&iser_conn->state_mutex); iser_conn 862 drivers/infiniband/ulp/iser/iscsi_iser.c iser_info("iser conn %p rc = %d\n", iser_conn, rc); iser_conn 884 drivers/infiniband/ulp/iser/iscsi_iser.c struct iser_conn *iser_conn = ep->dd_data; iser_conn 886 drivers/infiniband/ulp/iser/iscsi_iser.c iser_info("ep %p iser conn %p\n", ep, iser_conn); iser_conn 888 drivers/infiniband/ulp/iser/iscsi_iser.c mutex_lock(&iser_conn->state_mutex); iser_conn 889 drivers/infiniband/ulp/iser/iscsi_iser.c iser_conn_terminate(iser_conn); iser_conn 897 drivers/infiniband/ulp/iser/iscsi_iser.c if (iser_conn->iscsi_conn) { iser_conn 898 drivers/infiniband/ulp/iser/iscsi_iser.c INIT_WORK(&iser_conn->release_work, iser_release_work); iser_conn 899 drivers/infiniband/ulp/iser/iscsi_iser.c queue_work(release_wq, &iser_conn->release_work); iser_conn 900 drivers/infiniband/ulp/iser/iscsi_iser.c mutex_unlock(&iser_conn->state_mutex); iser_conn 902 drivers/infiniband/ulp/iser/iscsi_iser.c iser_conn->state = ISER_CONN_DOWN; iser_conn 903 drivers/infiniband/ulp/iser/iscsi_iser.c mutex_unlock(&iser_conn->state_mutex); iser_conn 904 drivers/infiniband/ulp/iser/iscsi_iser.c iser_conn_release(iser_conn); iser_conn 1071 drivers/infiniband/ulp/iser/iscsi_iser.c struct iser_conn *iser_conn, *n; iser_conn 1084 drivers/infiniband/ulp/iser/iscsi_iser.c list_for_each_entry_safe(iser_conn, n, &ig.connlist, iser_conn 1086 drivers/infiniband/ulp/iser/iscsi_iser.c iser_conn_release(iser_conn); iser_conn 301 drivers/infiniband/ulp/iser/iscsi_iser.h struct iser_conn; iser_conn 511 drivers/infiniband/ulp/iser/iscsi_iser.h struct iser_conn *iser_conn; iser_conn 568 drivers/infiniband/ulp/iser/iscsi_iser.h void iser_conn_init(struct iser_conn *iser_conn); iser_conn 570 drivers/infiniband/ulp/iser/iscsi_iser.h void iser_conn_release(struct iser_conn *iser_conn); iser_conn 572 drivers/infiniband/ulp/iser/iscsi_iser.h int iser_conn_terminate(struct iser_conn *iser_conn); iser_conn 588 drivers/infiniband/ulp/iser/iscsi_iser.h void iser_free_rx_descriptors(struct iser_conn *iser_conn); iser_conn 600 drivers/infiniband/ulp/iser/iscsi_iser.h int iser_connect(struct iser_conn *iser_conn, iser_conn 610 drivers/infiniband/ulp/iser/iscsi_iser.h int iser_post_recvl(struct iser_conn *iser_conn); iser_conn 611 drivers/infiniband/ulp/iser/iscsi_iser.h int iser_post_recvm(struct iser_conn *iser_conn, int count); iser_conn 626 drivers/infiniband/ulp/iser/iscsi_iser.h int iser_alloc_rx_descriptors(struct iser_conn *iser_conn, iser_conn 649 drivers/infiniband/ulp/iser/iscsi_iser.h static inline struct iser_conn * iser_conn 652 drivers/infiniband/ulp/iser/iscsi_iser.h return container_of(ib_conn, struct iser_conn, ib_conn); iser_conn 163 drivers/infiniband/ulp/iser/iser_initiator.c static void iser_create_send_desc(struct iser_conn *iser_conn, iser_conn 166 drivers/infiniband/ulp/iser/iser_initiator.c struct iser_device *device = iser_conn->ib_conn.device; iser_conn 176 drivers/infiniband/ulp/iser/iser_initiator.c static void iser_free_login_buf(struct iser_conn *iser_conn) iser_conn 178 drivers/infiniband/ulp/iser/iser_initiator.c struct iser_device *device = iser_conn->ib_conn.device; iser_conn 179 drivers/infiniband/ulp/iser/iser_initiator.c struct iser_login_desc *desc = &iser_conn->login_desc; iser_conn 198 drivers/infiniband/ulp/iser/iser_initiator.c static int iser_alloc_login_buf(struct iser_conn *iser_conn) iser_conn 200 drivers/infiniband/ulp/iser/iser_initiator.c struct iser_device *device = iser_conn->ib_conn.device; iser_conn 201 drivers/infiniband/ulp/iser/iser_initiator.c struct iser_login_desc *desc = &iser_conn->login_desc; iser_conn 239 drivers/infiniband/ulp/iser/iser_initiator.c int iser_alloc_rx_descriptors(struct iser_conn *iser_conn, iser_conn 246 drivers/infiniband/ulp/iser/iser_initiator.c struct ib_conn *ib_conn = &iser_conn->ib_conn; iser_conn 249 drivers/infiniband/ulp/iser/iser_initiator.c iser_conn->qp_max_recv_dtos = session->cmds_max; iser_conn 250 drivers/infiniband/ulp/iser/iser_initiator.c iser_conn->qp_max_recv_dtos_mask = session->cmds_max - 1; /* cmds_max is 2^N */ iser_conn 251 drivers/infiniband/ulp/iser/iser_initiator.c iser_conn->min_posted_rx = iser_conn->qp_max_recv_dtos >> 2; iser_conn 254 drivers/infiniband/ulp/iser/iser_initiator.c iser_conn->pages_per_mr)) iser_conn 257 drivers/infiniband/ulp/iser/iser_initiator.c if (iser_alloc_login_buf(iser_conn)) iser_conn 260 drivers/infiniband/ulp/iser/iser_initiator.c iser_conn->num_rx_descs = session->cmds_max; iser_conn 261 drivers/infiniband/ulp/iser/iser_initiator.c iser_conn->rx_descs = kmalloc_array(iser_conn->num_rx_descs, iser_conn 264 drivers/infiniband/ulp/iser/iser_initiator.c if (!iser_conn->rx_descs) iser_conn 267 drivers/infiniband/ulp/iser/iser_initiator.c rx_desc = iser_conn->rx_descs; iser_conn 269 drivers/infiniband/ulp/iser/iser_initiator.c for (i = 0; i < iser_conn->qp_max_recv_dtos; i++, rx_desc++) { iser_conn 283 drivers/infiniband/ulp/iser/iser_initiator.c iser_conn->rx_desc_head = 0; iser_conn 287 drivers/infiniband/ulp/iser/iser_initiator.c rx_desc = iser_conn->rx_descs; iser_conn 291 drivers/infiniband/ulp/iser/iser_initiator.c kfree(iser_conn->rx_descs); iser_conn 292 drivers/infiniband/ulp/iser/iser_initiator.c iser_conn->rx_descs = NULL; iser_conn 294 drivers/infiniband/ulp/iser/iser_initiator.c iser_free_login_buf(iser_conn); iser_conn 302 drivers/infiniband/ulp/iser/iser_initiator.c void iser_free_rx_descriptors(struct iser_conn *iser_conn) iser_conn 306 drivers/infiniband/ulp/iser/iser_initiator.c struct ib_conn *ib_conn = &iser_conn->ib_conn; iser_conn 312 drivers/infiniband/ulp/iser/iser_initiator.c rx_desc = iser_conn->rx_descs; iser_conn 313 drivers/infiniband/ulp/iser/iser_initiator.c for (i = 0; i < iser_conn->qp_max_recv_dtos; i++, rx_desc++) iser_conn 316 drivers/infiniband/ulp/iser/iser_initiator.c kfree(iser_conn->rx_descs); iser_conn 318 drivers/infiniband/ulp/iser/iser_initiator.c iser_conn->rx_descs = NULL; iser_conn 320 drivers/infiniband/ulp/iser/iser_initiator.c iser_free_login_buf(iser_conn); iser_conn 325 drivers/infiniband/ulp/iser/iser_initiator.c struct iser_conn *iser_conn = conn->dd_data; iser_conn 326 drivers/infiniband/ulp/iser/iser_initiator.c struct ib_conn *ib_conn = &iser_conn->ib_conn; iser_conn 345 drivers/infiniband/ulp/iser/iser_initiator.c iser_conn->min_posted_rx); iser_conn 348 drivers/infiniband/ulp/iser/iser_initiator.c if (iser_post_recvm(iser_conn, iser_conn->min_posted_rx)) iser_conn 365 drivers/infiniband/ulp/iser/iser_initiator.c struct iser_conn *iser_conn = conn->dd_data; iser_conn 373 drivers/infiniband/ulp/iser/iser_initiator.c u8 sig_count = ++iser_conn->ib_conn.sig_count; iser_conn 380 drivers/infiniband/ulp/iser/iser_initiator.c iser_create_send_desc(iser_conn, tx_desc); iser_conn 420 drivers/infiniband/ulp/iser/iser_initiator.c err = iser_post_send(&iser_conn->ib_conn, tx_desc, iser_conn 437 drivers/infiniband/ulp/iser/iser_initiator.c struct iser_conn *iser_conn = conn->dd_data; iser_conn 486 drivers/infiniband/ulp/iser/iser_initiator.c err = iser_post_send(&iser_conn->ib_conn, tx_desc, true); iser_conn 499 drivers/infiniband/ulp/iser/iser_initiator.c struct iser_conn *iser_conn = conn->dd_data; iser_conn 509 drivers/infiniband/ulp/iser/iser_initiator.c iser_create_send_desc(iser_conn, mdesc); iser_conn 511 drivers/infiniband/ulp/iser/iser_initiator.c device = iser_conn->ib_conn.device; iser_conn 516 drivers/infiniband/ulp/iser/iser_initiator.c struct iser_login_desc *desc = &iser_conn->login_desc; iser_conn 541 drivers/infiniband/ulp/iser/iser_initiator.c err = iser_post_recvl(iser_conn); iser_conn 549 drivers/infiniband/ulp/iser/iser_initiator.c err = iser_post_send(&iser_conn->ib_conn, mdesc, true); iser_conn 561 drivers/infiniband/ulp/iser/iser_initiator.c struct iser_conn *iser_conn = to_iser_conn(ib_conn); iser_conn 583 drivers/infiniband/ulp/iser/iser_initiator.c iscsi_iser_recv(iser_conn->iscsi_conn, hdr, data, length); iser_conn 607 drivers/infiniband/ulp/iser/iser_initiator.c iser_check_remote_inv(struct iser_conn *iser_conn, iser_conn 616 drivers/infiniband/ulp/iser/iser_initiator.c iser_conn, rkey); iser_conn 618 drivers/infiniband/ulp/iser/iser_initiator.c if (unlikely(!iser_conn->snd_w_inv)) { iser_conn 620 drivers/infiniband/ulp/iser/iser_initiator.c iser_conn); iser_conn 624 drivers/infiniband/ulp/iser/iser_initiator.c task = iscsi_itt_to_ctask(iser_conn->iscsi_conn, hdr->itt); iser_conn 653 drivers/infiniband/ulp/iser/iser_initiator.c struct iser_conn *iser_conn = to_iser_conn(ib_conn); iser_conn 674 drivers/infiniband/ulp/iser/iser_initiator.c if (iser_check_remote_inv(iser_conn, wc, hdr)) { iser_conn 675 drivers/infiniband/ulp/iser/iser_initiator.c iscsi_conn_failure(iser_conn->iscsi_conn, iser_conn 680 drivers/infiniband/ulp/iser/iser_initiator.c iscsi_iser_recv(iser_conn->iscsi_conn, hdr, desc->data, length); iser_conn 693 drivers/infiniband/ulp/iser/iser_initiator.c if (outstanding + iser_conn->min_posted_rx <= iser_conn->qp_max_recv_dtos) { iser_conn 694 drivers/infiniband/ulp/iser/iser_initiator.c count = min(iser_conn->qp_max_recv_dtos - outstanding, iser_conn 695 drivers/infiniband/ulp/iser/iser_initiator.c iser_conn->min_posted_rx); iser_conn 696 drivers/infiniband/ulp/iser/iser_initiator.c err = iser_post_recvm(iser_conn, count); iser_conn 170 drivers/infiniband/ulp/iser/iser_memory.c dev = iser_task->iser_conn->ib_conn.device->ib_device; iser_conn 186 drivers/infiniband/ulp/iser/iser_memory.c dev = iser_task->iser_conn->ib_conn.device->ib_device; iser_conn 232 drivers/infiniband/ulp/iser/iser_memory.c struct ib_conn *ib_conn = &iser_task->iser_conn->ib_conn; iser_conn 293 drivers/infiniband/ulp/iser/iser_memory.c struct iser_device *device = iser_task->iser_conn->ib_conn.device; iser_conn 299 drivers/infiniband/ulp/iser/iser_memory.c device->reg_ops->reg_desc_put(&iser_task->iser_conn->ib_conn, iser_conn 387 drivers/infiniband/ulp/iser/iser_memory.c struct ib_cqe *cqe = &iser_task->iser_conn->ib_conn.reg_cqe; iser_conn 444 drivers/infiniband/ulp/iser/iser_memory.c struct ib_cqe *cqe = &iser_task->iser_conn->ib_conn.reg_cqe; iser_conn 492 drivers/infiniband/ulp/iser/iser_memory.c struct iser_device *device = task->iser_conn->ib_conn.device; iser_conn 504 drivers/infiniband/ulp/iser/iser_memory.c struct ib_conn *ib_conn = &task->iser_conn->ib_conn; iser_conn 545 drivers/infiniband/ulp/iser/iser_memory.c struct iser_device *device = task->iser_conn->ib_conn.device; iser_conn 365 drivers/infiniband/ulp/iser/iser_verbs.c struct iser_conn *iser_conn = to_iser_conn(ib_conn); iser_conn 403 drivers/infiniband/ulp/iser/iser_verbs.c iser_conn->max_cmds = iser_conn 408 drivers/infiniband/ulp/iser/iser_verbs.c iser_conn->max_cmds = iser_conn 412 drivers/infiniband/ulp/iser/iser_verbs.c iser_conn->max_cmds = iser_conn 493 drivers/infiniband/ulp/iser/iser_verbs.c static int iser_conn_state_comp_exch(struct iser_conn *iser_conn, iser_conn 499 drivers/infiniband/ulp/iser/iser_verbs.c ret = (iser_conn->state == comp); iser_conn 501 drivers/infiniband/ulp/iser/iser_verbs.c iser_conn->state = exch; iser_conn 508 drivers/infiniband/ulp/iser/iser_verbs.c struct iser_conn *iser_conn; iser_conn 510 drivers/infiniband/ulp/iser/iser_verbs.c iser_conn = container_of(work, struct iser_conn, release_work); iser_conn 513 drivers/infiniband/ulp/iser/iser_verbs.c wait_for_completion(&iser_conn->stop_completion); iser_conn 515 drivers/infiniband/ulp/iser/iser_verbs.c wait_for_completion(&iser_conn->ib_completion); iser_conn 517 drivers/infiniband/ulp/iser/iser_verbs.c mutex_lock(&iser_conn->state_mutex); iser_conn 518 drivers/infiniband/ulp/iser/iser_verbs.c iser_conn->state = ISER_CONN_DOWN; iser_conn 519 drivers/infiniband/ulp/iser/iser_verbs.c mutex_unlock(&iser_conn->state_mutex); iser_conn 521 drivers/infiniband/ulp/iser/iser_verbs.c iser_conn_release(iser_conn); iser_conn 535 drivers/infiniband/ulp/iser/iser_verbs.c static void iser_free_ib_conn_res(struct iser_conn *iser_conn, iser_conn 538 drivers/infiniband/ulp/iser/iser_verbs.c struct ib_conn *ib_conn = &iser_conn->ib_conn; iser_conn 542 drivers/infiniband/ulp/iser/iser_verbs.c iser_conn, ib_conn->cma_id, ib_conn->qp); iser_conn 553 drivers/infiniband/ulp/iser/iser_verbs.c if (iser_conn->rx_descs) iser_conn 554 drivers/infiniband/ulp/iser/iser_verbs.c iser_free_rx_descriptors(iser_conn); iser_conn 566 drivers/infiniband/ulp/iser/iser_verbs.c void iser_conn_release(struct iser_conn *iser_conn) iser_conn 568 drivers/infiniband/ulp/iser/iser_verbs.c struct ib_conn *ib_conn = &iser_conn->ib_conn; iser_conn 571 drivers/infiniband/ulp/iser/iser_verbs.c list_del(&iser_conn->conn_list); iser_conn 574 drivers/infiniband/ulp/iser/iser_verbs.c mutex_lock(&iser_conn->state_mutex); iser_conn 576 drivers/infiniband/ulp/iser/iser_verbs.c if (iser_conn->state != ISER_CONN_DOWN) { iser_conn 578 drivers/infiniband/ulp/iser/iser_verbs.c iser_conn, iser_conn->state); iser_conn 579 drivers/infiniband/ulp/iser/iser_verbs.c iscsi_destroy_endpoint(iser_conn->ep); iser_conn 580 drivers/infiniband/ulp/iser/iser_verbs.c iser_conn->state = ISER_CONN_DOWN; iser_conn 586 drivers/infiniband/ulp/iser/iser_verbs.c iser_free_ib_conn_res(iser_conn, true); iser_conn 587 drivers/infiniband/ulp/iser/iser_verbs.c mutex_unlock(&iser_conn->state_mutex); iser_conn 594 drivers/infiniband/ulp/iser/iser_verbs.c kfree(iser_conn); iser_conn 601 drivers/infiniband/ulp/iser/iser_verbs.c int iser_conn_terminate(struct iser_conn *iser_conn) iser_conn 603 drivers/infiniband/ulp/iser/iser_verbs.c struct ib_conn *ib_conn = &iser_conn->ib_conn; iser_conn 607 drivers/infiniband/ulp/iser/iser_verbs.c if (!iser_conn_state_comp_exch(iser_conn, ISER_CONN_UP, iser_conn 611 drivers/infiniband/ulp/iser/iser_verbs.c iser_info("iser_conn %p state %d\n", iser_conn, iser_conn->state); iser_conn 614 drivers/infiniband/ulp/iser/iser_verbs.c if (iser_conn->iscsi_conn) iser_conn 615 drivers/infiniband/ulp/iser/iser_verbs.c iscsi_suspend_queue(iser_conn->iscsi_conn); iser_conn 626 drivers/infiniband/ulp/iser/iser_verbs.c iser_conn, err); iser_conn 640 drivers/infiniband/ulp/iser/iser_verbs.c struct iser_conn *iser_conn; iser_conn 642 drivers/infiniband/ulp/iser/iser_verbs.c iser_conn = (struct iser_conn *)cma_id->context; iser_conn 643 drivers/infiniband/ulp/iser/iser_verbs.c iser_conn->state = ISER_CONN_TERMINATING; iser_conn 647 drivers/infiniband/ulp/iser/iser_verbs.c iser_calc_scsi_params(struct iser_conn *iser_conn, iser_conn 650 drivers/infiniband/ulp/iser/iser_verbs.c struct iser_device *device = iser_conn->ib_conn.device; iser_conn 668 drivers/infiniband/ulp/iser/iser_verbs.c if (iser_conn->ib_conn.pi_support) iser_conn 682 drivers/infiniband/ulp/iser/iser_verbs.c iser_conn->scsi_sg_tablesize = min(sg_tablesize, sup_sg_tablesize); iser_conn 683 drivers/infiniband/ulp/iser/iser_verbs.c iser_conn->pages_per_mr = iser_conn 684 drivers/infiniband/ulp/iser/iser_verbs.c iser_conn->scsi_sg_tablesize + reserved_mr_pages; iser_conn 693 drivers/infiniband/ulp/iser/iser_verbs.c struct iser_conn *iser_conn; iser_conn 697 drivers/infiniband/ulp/iser/iser_verbs.c iser_conn = (struct iser_conn *)cma_id->context; iser_conn 698 drivers/infiniband/ulp/iser/iser_verbs.c if (iser_conn->state != ISER_CONN_PENDING) iser_conn 702 drivers/infiniband/ulp/iser/iser_verbs.c ib_conn = &iser_conn->ib_conn; iser_conn 725 drivers/infiniband/ulp/iser/iser_verbs.c iser_calc_scsi_params(iser_conn, iser_max_sectors); iser_conn 743 drivers/infiniband/ulp/iser/iser_verbs.c struct iser_conn *iser_conn = (struct iser_conn *)cma_id->context; iser_conn 744 drivers/infiniband/ulp/iser/iser_verbs.c struct ib_conn *ib_conn = &iser_conn->ib_conn; iser_conn 747 drivers/infiniband/ulp/iser/iser_verbs.c if (iser_conn->state != ISER_CONN_PENDING) iser_conn 782 drivers/infiniband/ulp/iser/iser_verbs.c struct iser_conn *iser_conn; iser_conn 786 drivers/infiniband/ulp/iser/iser_verbs.c iser_conn = (struct iser_conn *)cma_id->context; iser_conn 787 drivers/infiniband/ulp/iser/iser_verbs.c if (iser_conn->state != ISER_CONN_PENDING) iser_conn 797 drivers/infiniband/ulp/iser/iser_verbs.c iser_conn->snd_w_inv = !(flags & ISER_SEND_W_INV_NOT_SUP); iser_conn 801 drivers/infiniband/ulp/iser/iser_verbs.c iser_conn, iser_conn->snd_w_inv ? "remote" : "local"); iser_conn 803 drivers/infiniband/ulp/iser/iser_verbs.c iser_conn->state = ISER_CONN_UP; iser_conn 804 drivers/infiniband/ulp/iser/iser_verbs.c complete(&iser_conn->up_completion); iser_conn 809 drivers/infiniband/ulp/iser/iser_verbs.c struct iser_conn *iser_conn = (struct iser_conn *)cma_id->context; iser_conn 811 drivers/infiniband/ulp/iser/iser_verbs.c if (iser_conn_terminate(iser_conn)) { iser_conn 812 drivers/infiniband/ulp/iser/iser_verbs.c if (iser_conn->iscsi_conn) iser_conn 813 drivers/infiniband/ulp/iser/iser_verbs.c iscsi_conn_failure(iser_conn->iscsi_conn, iser_conn 823 drivers/infiniband/ulp/iser/iser_verbs.c struct iser_conn *iser_conn = (struct iser_conn *)cma_id->context; iser_conn 831 drivers/infiniband/ulp/iser/iser_verbs.c iser_free_ib_conn_res(iser_conn, destroy); iser_conn 832 drivers/infiniband/ulp/iser/iser_verbs.c complete(&iser_conn->ib_completion); iser_conn 837 drivers/infiniband/ulp/iser/iser_verbs.c struct iser_conn *iser_conn; iser_conn 840 drivers/infiniband/ulp/iser/iser_verbs.c iser_conn = (struct iser_conn *)cma_id->context; iser_conn 845 drivers/infiniband/ulp/iser/iser_verbs.c mutex_lock(&iser_conn->state_mutex); iser_conn 879 drivers/infiniband/ulp/iser/iser_verbs.c if (iser_conn->state != ISER_CONN_DOWN) { iser_conn 880 drivers/infiniband/ulp/iser/iser_verbs.c iser_conn->ib_conn.cma_id = NULL; iser_conn 889 drivers/infiniband/ulp/iser/iser_verbs.c mutex_unlock(&iser_conn->state_mutex); iser_conn 894 drivers/infiniband/ulp/iser/iser_verbs.c void iser_conn_init(struct iser_conn *iser_conn) iser_conn 896 drivers/infiniband/ulp/iser/iser_verbs.c struct ib_conn *ib_conn = &iser_conn->ib_conn; iser_conn 898 drivers/infiniband/ulp/iser/iser_verbs.c iser_conn->state = ISER_CONN_INIT; iser_conn 899 drivers/infiniband/ulp/iser/iser_verbs.c init_completion(&iser_conn->stop_completion); iser_conn 900 drivers/infiniband/ulp/iser/iser_verbs.c init_completion(&iser_conn->ib_completion); iser_conn 901 drivers/infiniband/ulp/iser/iser_verbs.c init_completion(&iser_conn->up_completion); iser_conn 902 drivers/infiniband/ulp/iser/iser_verbs.c INIT_LIST_HEAD(&iser_conn->conn_list); iser_conn 903 drivers/infiniband/ulp/iser/iser_verbs.c mutex_init(&iser_conn->state_mutex); iser_conn 913 drivers/infiniband/ulp/iser/iser_verbs.c int iser_connect(struct iser_conn *iser_conn, iser_conn 918 drivers/infiniband/ulp/iser/iser_verbs.c struct ib_conn *ib_conn = &iser_conn->ib_conn; iser_conn 921 drivers/infiniband/ulp/iser/iser_verbs.c mutex_lock(&iser_conn->state_mutex); iser_conn 923 drivers/infiniband/ulp/iser/iser_verbs.c sprintf(iser_conn->name, "%pISp", dst_addr); iser_conn 925 drivers/infiniband/ulp/iser/iser_verbs.c iser_info("connecting to: %s\n", iser_conn->name); iser_conn 930 drivers/infiniband/ulp/iser/iser_verbs.c iser_conn->state = ISER_CONN_PENDING; iser_conn 933 drivers/infiniband/ulp/iser/iser_verbs.c (void *)iser_conn, iser_conn 948 drivers/infiniband/ulp/iser/iser_verbs.c wait_for_completion_interruptible(&iser_conn->up_completion); iser_conn 950 drivers/infiniband/ulp/iser/iser_verbs.c if (iser_conn->state != ISER_CONN_UP) { iser_conn 955 drivers/infiniband/ulp/iser/iser_verbs.c mutex_unlock(&iser_conn->state_mutex); iser_conn 958 drivers/infiniband/ulp/iser/iser_verbs.c list_add(&iser_conn->conn_list, &ig.connlist); iser_conn 965 drivers/infiniband/ulp/iser/iser_verbs.c iser_conn->state = ISER_CONN_DOWN; iser_conn 967 drivers/infiniband/ulp/iser/iser_verbs.c mutex_unlock(&iser_conn->state_mutex); iser_conn 968 drivers/infiniband/ulp/iser/iser_verbs.c iser_conn_release(iser_conn); iser_conn 972 drivers/infiniband/ulp/iser/iser_verbs.c int iser_post_recvl(struct iser_conn *iser_conn) iser_conn 974 drivers/infiniband/ulp/iser/iser_verbs.c struct ib_conn *ib_conn = &iser_conn->ib_conn; iser_conn 975 drivers/infiniband/ulp/iser/iser_verbs.c struct iser_login_desc *desc = &iser_conn->login_desc; iser_conn 999 drivers/infiniband/ulp/iser/iser_verbs.c int iser_post_recvm(struct iser_conn *iser_conn, int count) iser_conn 1001 drivers/infiniband/ulp/iser/iser_verbs.c struct ib_conn *ib_conn = &iser_conn->ib_conn; iser_conn 1002 drivers/infiniband/ulp/iser/iser_verbs.c unsigned int my_rx_head = iser_conn->rx_desc_head; iser_conn 1008 drivers/infiniband/ulp/iser/iser_verbs.c rx_desc = &iser_conn->rx_descs[my_rx_head]; iser_conn 1014 drivers/infiniband/ulp/iser/iser_verbs.c my_rx_head = (my_rx_head + 1) & iser_conn->qp_max_recv_dtos_mask; iser_conn 1026 drivers/infiniband/ulp/iser/iser_verbs.c iser_conn->rx_desc_head = my_rx_head; iser_conn 1120 drivers/infiniband/ulp/iser/iser_verbs.c struct iser_conn *iser_conn = to_iser_conn(wc->qp->qp_context); iser_conn 1126 drivers/infiniband/ulp/iser/iser_verbs.c if (iser_conn->iscsi_conn) iser_conn 1127 drivers/infiniband/ulp/iser/iser_verbs.c iscsi_conn_failure(iser_conn->iscsi_conn,