Lines Matching refs:bnx2i_conn
239 struct bnx2i_conn *bnx2i_conn, in bnx2i_bind_conn_to_iscsi_cid() argument
243 iscsi_conn_printk(KERN_ALERT, bnx2i_conn->cls_conn->dd_data, in bnx2i_bind_conn_to_iscsi_cid()
248 hba->cid_que.conn_cid_tbl[iscsi_cid] = bnx2i_conn; in bnx2i_bind_conn_to_iscsi_cid()
258 struct bnx2i_conn *bnx2i_get_conn_from_id(struct bnx2i_hba *hba, in bnx2i_get_conn_from_id()
336 mem_size = hba->max_active_conns * sizeof(struct bnx2i_conn *); in bnx2i_setup_free_cid_que()
937 struct bnx2i_conn *bnx2i_conn) in bnx2i_conn_free_login_resources() argument
939 if (bnx2i_conn->gen_pdu.resp_bd_tbl) { in bnx2i_conn_free_login_resources()
941 bnx2i_conn->gen_pdu.resp_bd_tbl, in bnx2i_conn_free_login_resources()
942 bnx2i_conn->gen_pdu.resp_bd_dma); in bnx2i_conn_free_login_resources()
943 bnx2i_conn->gen_pdu.resp_bd_tbl = NULL; in bnx2i_conn_free_login_resources()
946 if (bnx2i_conn->gen_pdu.req_bd_tbl) { in bnx2i_conn_free_login_resources()
948 bnx2i_conn->gen_pdu.req_bd_tbl, in bnx2i_conn_free_login_resources()
949 bnx2i_conn->gen_pdu.req_bd_dma); in bnx2i_conn_free_login_resources()
950 bnx2i_conn->gen_pdu.req_bd_tbl = NULL; in bnx2i_conn_free_login_resources()
953 if (bnx2i_conn->gen_pdu.resp_buf) { in bnx2i_conn_free_login_resources()
956 bnx2i_conn->gen_pdu.resp_buf, in bnx2i_conn_free_login_resources()
957 bnx2i_conn->gen_pdu.resp_dma_addr); in bnx2i_conn_free_login_resources()
958 bnx2i_conn->gen_pdu.resp_buf = NULL; in bnx2i_conn_free_login_resources()
961 if (bnx2i_conn->gen_pdu.req_buf) { in bnx2i_conn_free_login_resources()
964 bnx2i_conn->gen_pdu.req_buf, in bnx2i_conn_free_login_resources()
965 bnx2i_conn->gen_pdu.req_dma_addr); in bnx2i_conn_free_login_resources()
966 bnx2i_conn->gen_pdu.req_buf = NULL; in bnx2i_conn_free_login_resources()
978 struct bnx2i_conn *bnx2i_conn) in bnx2i_conn_alloc_login_resources() argument
981 bnx2i_conn->gen_pdu.req_buf = in bnx2i_conn_alloc_login_resources()
984 &bnx2i_conn->gen_pdu.req_dma_addr, in bnx2i_conn_alloc_login_resources()
986 if (bnx2i_conn->gen_pdu.req_buf == NULL) in bnx2i_conn_alloc_login_resources()
989 bnx2i_conn->gen_pdu.req_buf_size = 0; in bnx2i_conn_alloc_login_resources()
990 bnx2i_conn->gen_pdu.req_wr_ptr = bnx2i_conn->gen_pdu.req_buf; in bnx2i_conn_alloc_login_resources()
992 bnx2i_conn->gen_pdu.resp_buf = in bnx2i_conn_alloc_login_resources()
995 &bnx2i_conn->gen_pdu.resp_dma_addr, in bnx2i_conn_alloc_login_resources()
997 if (bnx2i_conn->gen_pdu.resp_buf == NULL) in bnx2i_conn_alloc_login_resources()
1000 bnx2i_conn->gen_pdu.resp_buf_size = ISCSI_DEF_MAX_RECV_SEG_LEN; in bnx2i_conn_alloc_login_resources()
1001 bnx2i_conn->gen_pdu.resp_wr_ptr = bnx2i_conn->gen_pdu.resp_buf; in bnx2i_conn_alloc_login_resources()
1003 bnx2i_conn->gen_pdu.req_bd_tbl = in bnx2i_conn_alloc_login_resources()
1005 &bnx2i_conn->gen_pdu.req_bd_dma, GFP_KERNEL); in bnx2i_conn_alloc_login_resources()
1006 if (bnx2i_conn->gen_pdu.req_bd_tbl == NULL) in bnx2i_conn_alloc_login_resources()
1009 bnx2i_conn->gen_pdu.resp_bd_tbl = in bnx2i_conn_alloc_login_resources()
1011 &bnx2i_conn->gen_pdu.resp_bd_dma, in bnx2i_conn_alloc_login_resources()
1013 if (bnx2i_conn->gen_pdu.resp_bd_tbl == NULL) in bnx2i_conn_alloc_login_resources()
1020 bnx2i_conn->gen_pdu.req_bd_tbl, in bnx2i_conn_alloc_login_resources()
1021 bnx2i_conn->gen_pdu.req_bd_dma); in bnx2i_conn_alloc_login_resources()
1022 bnx2i_conn->gen_pdu.req_bd_tbl = NULL; in bnx2i_conn_alloc_login_resources()
1026 bnx2i_conn->gen_pdu.resp_buf, in bnx2i_conn_alloc_login_resources()
1027 bnx2i_conn->gen_pdu.resp_dma_addr); in bnx2i_conn_alloc_login_resources()
1028 bnx2i_conn->gen_pdu.resp_buf = NULL; in bnx2i_conn_alloc_login_resources()
1031 bnx2i_conn->gen_pdu.req_buf, in bnx2i_conn_alloc_login_resources()
1032 bnx2i_conn->gen_pdu.req_dma_addr); in bnx2i_conn_alloc_login_resources()
1033 bnx2i_conn->gen_pdu.req_buf = NULL; in bnx2i_conn_alloc_login_resources()
1035 iscsi_conn_printk(KERN_ERR, bnx2i_conn->cls_conn->dd_data, in bnx2i_conn_alloc_login_resources()
1049 static void bnx2i_iscsi_prep_generic_pdu_bd(struct bnx2i_conn *bnx2i_conn) in bnx2i_iscsi_prep_generic_pdu_bd() argument
1053 bd_tbl = (struct iscsi_bd *) bnx2i_conn->gen_pdu.req_bd_tbl; in bnx2i_iscsi_prep_generic_pdu_bd()
1056 (u32) ((u64) bnx2i_conn->gen_pdu.req_dma_addr >> 32); in bnx2i_iscsi_prep_generic_pdu_bd()
1057 bd_tbl->buffer_addr_lo = (u32) bnx2i_conn->gen_pdu.req_dma_addr; in bnx2i_iscsi_prep_generic_pdu_bd()
1058 bd_tbl->buffer_length = bnx2i_conn->gen_pdu.req_wr_ptr - in bnx2i_iscsi_prep_generic_pdu_bd()
1059 bnx2i_conn->gen_pdu.req_buf; in bnx2i_iscsi_prep_generic_pdu_bd()
1064 bd_tbl = (struct iscsi_bd *) bnx2i_conn->gen_pdu.resp_bd_tbl; in bnx2i_iscsi_prep_generic_pdu_bd()
1065 bd_tbl->buffer_addr_hi = (u64) bnx2i_conn->gen_pdu.resp_dma_addr >> 32; in bnx2i_iscsi_prep_generic_pdu_bd()
1066 bd_tbl->buffer_addr_lo = (u32) bnx2i_conn->gen_pdu.resp_dma_addr; in bnx2i_iscsi_prep_generic_pdu_bd()
1084 struct bnx2i_conn *bnx2i_conn = cmd->conn; in bnx2i_iscsi_send_generic_request() local
1089 bnx2i_iscsi_prep_generic_pdu_bd(bnx2i_conn); in bnx2i_iscsi_send_generic_request()
1092 bnx2i_send_iscsi_login(bnx2i_conn, task); in bnx2i_iscsi_send_generic_request()
1095 data_len = bnx2i_conn->gen_pdu.req_buf_size; in bnx2i_iscsi_send_generic_request()
1096 buf = bnx2i_conn->gen_pdu.req_buf; in bnx2i_iscsi_send_generic_request()
1098 rc = bnx2i_send_iscsi_nopout(bnx2i_conn, task, in bnx2i_iscsi_send_generic_request()
1101 rc = bnx2i_send_iscsi_nopout(bnx2i_conn, task, in bnx2i_iscsi_send_generic_request()
1105 rc = bnx2i_send_iscsi_logout(bnx2i_conn, task); in bnx2i_iscsi_send_generic_request()
1108 rc = bnx2i_send_iscsi_tmf(bnx2i_conn, task); in bnx2i_iscsi_send_generic_request()
1111 rc = bnx2i_send_iscsi_text(bnx2i_conn, task); in bnx2i_iscsi_send_generic_request()
1114 iscsi_conn_printk(KERN_ALERT, bnx2i_conn->cls_conn->dd_data, in bnx2i_iscsi_send_generic_request()
1161 struct bnx2i_conn *bnx2i_conn = conn->dd_data; in bnx2i_cleanup_task() local
1162 struct bnx2i_hba *hba = bnx2i_conn->hba; in bnx2i_cleanup_task()
1177 wait_for_completion_timeout(&bnx2i_conn->cmd_cleanup_cmpl, in bnx2i_cleanup_task()
1193 struct bnx2i_conn *bnx2i_conn = conn->dd_data; in bnx2i_mtask_xmit() local
1194 struct bnx2i_hba *hba = bnx2i_conn->hba; in bnx2i_mtask_xmit()
1197 memset(bnx2i_conn->gen_pdu.req_buf, 0, ISCSI_DEF_MAX_RECV_SEG_LEN); in bnx2i_mtask_xmit()
1200 bnx2i_conn->gen_pdu.req_buf_size = task->data_count; in bnx2i_mtask_xmit()
1207 memcpy(bnx2i_conn->gen_pdu.req_buf, task->data, in bnx2i_mtask_xmit()
1209 bnx2i_conn->gen_pdu.req_wr_ptr = in bnx2i_mtask_xmit()
1210 bnx2i_conn->gen_pdu.req_buf + task->data_count; in bnx2i_mtask_xmit()
1229 struct bnx2i_conn *bnx2i_conn = conn->dd_data; in bnx2i_task_xmit() local
1234 if (atomic_read(&bnx2i_conn->ep->num_active_cmds) + 1 > in bnx2i_task_xmit()
1246 cmd->conn = bnx2i_conn; in bnx2i_task_xmit()
1274 bnx2i_send_iscsi_scsicmd(bnx2i_conn, cmd); in bnx2i_task_xmit()
1362 struct bnx2i_conn *bnx2i_conn; in bnx2i_conn_create() local
1366 cls_conn = iscsi_conn_setup(cls_session, sizeof(*bnx2i_conn), in bnx2i_conn_create()
1372 bnx2i_conn = conn->dd_data; in bnx2i_conn_create()
1373 bnx2i_conn->cls_conn = cls_conn; in bnx2i_conn_create()
1374 bnx2i_conn->hba = hba; in bnx2i_conn_create()
1376 atomic_set(&bnx2i_conn->work_cnt, 0); in bnx2i_conn_create()
1379 bnx2i_conn->ep = NULL; in bnx2i_conn_create()
1380 init_completion(&bnx2i_conn->cmd_cleanup_cmpl); in bnx2i_conn_create()
1382 if (bnx2i_conn_alloc_login_resources(hba, bnx2i_conn)) { in bnx2i_conn_create()
1412 struct bnx2i_conn *bnx2i_conn = conn->dd_data; in bnx2i_conn_bind() local
1449 bnx2i_ep->conn = bnx2i_conn; in bnx2i_conn_bind()
1450 bnx2i_conn->ep = bnx2i_ep; in bnx2i_conn_bind()
1451 bnx2i_conn->iscsi_conn_cid = bnx2i_ep->ep_iscsi_cid; in bnx2i_conn_bind()
1452 bnx2i_conn->fw_cid = bnx2i_ep->ep_cid; in bnx2i_conn_bind()
1454 ret_code = bnx2i_bind_conn_to_iscsi_cid(hba, bnx2i_conn, in bnx2i_conn_bind()
1461 bnx2i_put_rq_buf(bnx2i_conn, 0); in bnx2i_conn_bind()
1463 bnx2i_arm_cq_event_coalescing(bnx2i_conn->ep, CNIC_ARM_CQE); in bnx2i_conn_bind()
1478 struct bnx2i_conn *bnx2i_conn = conn->dd_data; in bnx2i_conn_destroy() local
1488 bnx2i_conn_free_login_resources(hba, bnx2i_conn); in bnx2i_conn_destroy()
1490 if (atomic_read(&bnx2i_conn->work_cnt)) { in bnx2i_conn_destroy()
1497 work->bnx2i_conn == bnx2i_conn) { in bnx2i_conn_destroy()
1501 &bnx2i_conn->work_cnt)) in bnx2i_conn_destroy()
1605 struct bnx2i_conn *bnx2i_conn = conn->dd_data; in bnx2i_conn_start() local
1607 bnx2i_conn->ep->state = EP_STATE_ULP_UPDATE_START; in bnx2i_conn_start()
1614 timer_setup(&bnx2i_conn->ep->ofld_timer, bnx2i_ep_ofld_timer, 0); in bnx2i_conn_start()
1615 bnx2i_conn->ep->ofld_timer.expires = 1 * HZ + jiffies; in bnx2i_conn_start()
1616 add_timer(&bnx2i_conn->ep->ofld_timer); in bnx2i_conn_start()
1618 wait_event_interruptible(bnx2i_conn->ep->ofld_wait, in bnx2i_conn_start()
1619 bnx2i_conn->ep->state != EP_STATE_ULP_UPDATE_START); in bnx2i_conn_start()
1623 del_timer_sync(&bnx2i_conn->ep->ofld_timer); in bnx2i_conn_start()
2118 struct bnx2i_conn *bnx2i_conn = NULL; in bnx2i_ep_disconnect() local
2133 bnx2i_conn = bnx2i_ep->conn; in bnx2i_ep_disconnect()
2134 conn = bnx2i_conn->cls_conn->dd_data; in bnx2i_ep_disconnect()
2161 if (bnx2i_conn) in bnx2i_ep_disconnect()
2162 bnx2i_conn->ep = NULL; in bnx2i_ep_disconnect()