Lines Matching defs:qedi_conn
17 static int qedi_send_iscsi_tmf(struct qedi_conn *qedi_conn,
33 struct qedi_conn *qedi_conn)
35 struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
44 resp_hdr = (struct iscsi_logout_rsp *)&qedi_conn->gen_pdu.resp_hdr;
60 cmd->task_id, qedi_conn->iscsi_conn_id);
62 spin_lock(&qedi_conn->list_lock);
66 qedi_conn->active_cmd_count--;
70 cmd->task_id, qedi_conn->iscsi_conn_id,
73 spin_unlock(&qedi_conn->list_lock);
84 struct qedi_conn *qedi_conn)
86 struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
99 resp_hdr_ptr = (struct iscsi_text_rsp *)&qedi_conn->gen_pdu.resp_hdr;
118 qedi_conn->gen_pdu.resp_wr_ptr = qedi_conn->gen_pdu.resp_buf + pld_len;
124 cmd->task_id, qedi_conn->iscsi_conn_id);
126 spin_lock(&qedi_conn->list_lock);
130 qedi_conn->active_cmd_count--;
134 cmd->task_id, qedi_conn->iscsi_conn_id,
137 spin_unlock(&qedi_conn->list_lock);
142 qedi_conn->gen_pdu.resp_buf,
143 (qedi_conn->gen_pdu.resp_wr_ptr -
144 qedi_conn->gen_pdu.resp_buf));
152 struct qedi_conn *qedi_conn = qedi_cmd->conn;
153 struct qedi_ctx *qedi = qedi_conn->qedi;
154 struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
159 set_bit(QEDI_CONN_FW_CLEANUP, &qedi_conn->flags);
162 rval = qedi_cleanup_all_io(qedi, qedi_conn, qedi_cmd->task, true);
172 clear_bit(QEDI_CONN_FW_CLEANUP, &qedi_conn->flags);
178 struct qedi_conn *qedi_conn)
181 struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
195 qedi_conn->iscsi_conn_id);
220 spin_lock(&qedi_conn->list_lock);
224 qedi_conn->active_cmd_count--;
226 spin_unlock(&qedi_conn->list_lock);
249 struct qedi_conn *qedi_conn)
251 struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
265 resp_hdr_ptr = (struct iscsi_login_rsp *)&qedi_conn->gen_pdu.resp_hdr;
284 qedi_conn->gen_pdu.resp_wr_ptr = qedi_conn->gen_pdu.resp_buf + pld_len;
286 spin_lock(&qedi_conn->list_lock);
290 qedi_conn->active_cmd_count--;
292 spin_unlock(&qedi_conn->list_lock);
297 qedi_conn->gen_pdu.resp_buf,
298 (qedi_conn->gen_pdu.resp_wr_ptr -
299 qedi_conn->gen_pdu.resp_buf));
304 cmd->task_id, qedi_conn->iscsi_conn_id);
400 struct qedi_conn *qedi_conn, u16 que_idx)
402 struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
420 hdr = (struct iscsi_nopin *)&qedi_conn->gen_pdu.resp_hdr;
449 cmd->task_id, qedi_conn->iscsi_conn_id);
451 spin_lock(&qedi_conn->list_lock);
455 qedi_conn->active_cmd_count--;
458 spin_unlock(&qedi_conn->list_lock);
471 struct qedi_conn *qedi_conn,
474 struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
497 resp_hdr = (struct iscsi_async *)&qedi_conn->gen_pdu.resp_hdr;
525 struct qedi_conn *qedi_conn,
528 struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
547 hdr = (struct iscsi_reject *)&qedi_conn->gen_pdu.resp_hdr;
575 struct qedi_conn *qedi_conn;
580 qedi_conn = qedi->cid_que.conn_cid_tbl[iscsi_cid];
641 qedi_conn->iscsi_conn_id, hdr->residual_count,
648 spin_lock(&qedi_conn->list_lock);
652 qedi_conn->active_cmd_count--;
654 spin_unlock(&qedi_conn->list_lock);
658 cmd->task_id, qedi_conn->iscsi_conn_id);
672 struct qedi_conn *conn, uint16_t que_idx)
708 struct qedi_conn *qedi_conn)
710 struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
737 struct qedi_conn *qedi_conn;
743 qedi_conn = qedi->cid_que.conn_cid_tbl[iscsi_cid];
744 if (!qedi_conn) {
751 spin_lock_bh(&qedi_conn->tmf_work_lock);
752 list_for_each_entry_safe(work, work_tmp, &qedi_conn->tmf_work_list,
760 proto_itt, qedi_conn->iscsi_conn_id);
772 spin_unlock_bh(&qedi_conn->tmf_work_lock);
777 proto_itt, tmf_hdr->flags, qedi_conn->iscsi_conn_id);
793 qedi_conn->iscsi_conn_id);
802 dbg_cmd->task_id, qedi_conn->iscsi_conn_id);
807 spin_lock(&qedi_conn->list_lock);
811 qedi_conn->active_cmd_count--;
813 spin_unlock(&qedi_conn->list_lock);
815 wake_up_interruptible(&qedi_conn->wait_queue);
817 } else if (qedi_conn->cmd_cleanup_req > 0) {
824 cqe->itid, protoitt, qedi_conn->cmd_cleanup_cmpl,
825 qedi_conn->iscsi_conn_id);
831 cqe->itid, qedi_conn->iscsi_conn_id);
834 qedi_conn->cmd_cleanup_cmpl++;
835 wake_up(&qedi_conn->wait_queue);
839 cqe->itid, qedi_conn->iscsi_conn_id);
847 protoitt, cqe->itid, qedi_conn->iscsi_conn_id, task);
857 struct qedi_conn *q_conn;
954 static void qedi_ring_doorbell(struct qedi_conn *qedi_conn)
965 dbell.sq_prod = qedi_conn->ep->fw_sq_prod_idx;
966 writel(*(u32 *)&dbell, qedi_conn->ep->p_doorbell);
973 QEDI_INFO(&qedi_conn->qedi->dbg_ctx, QEDI_LOG_MP_REQ,
975 qedi_conn->ep->sq_prod_idx, qedi_conn->ep->fw_sq_prod_idx,
976 qedi_conn->iscsi_conn_id);
979 static u16 qedi_get_wqe_idx(struct qedi_conn *qedi_conn)
984 ep = qedi_conn->ep;
996 int qedi_send_iscsi_login(struct qedi_conn *qedi_conn,
1004 struct qedi_ctx *qedi = qedi_conn->qedi;
1013 resp_sge = (struct scsi_sge *)qedi_conn->gen_pdu.resp_bd_tbl;
1015 ep = qedi_conn->ep;
1046 login_req_pdu_header.cid = qedi_conn->iscsi_conn_id;
1053 (struct scsi_sge *)qedi_conn->gen_pdu.req_bd_tbl;
1055 (u32)(qedi_conn->gen_pdu.req_dma_addr);
1057 (u32)((u64)qedi_conn->gen_pdu.req_dma_addr >> 32);
1062 (struct scsi_sge *)qedi_conn->gen_pdu.resp_bd_tbl;
1064 (u32)(qedi_conn->gen_pdu.resp_dma_addr);
1066 (u32)((u64)qedi_conn->gen_pdu.resp_dma_addr >> 32);
1072 task_params.conn_icid = (u16)qedi_conn->iscsi_conn_id;
1078 sq_idx = qedi_get_wqe_idx(qedi_conn);
1089 spin_lock(&qedi_conn->list_lock);
1090 list_add_tail(&qedi_cmd->io_cmd, &qedi_conn->active_cmd_list);
1092 qedi_conn->active_cmd_count++;
1093 spin_unlock(&qedi_conn->list_lock);
1095 qedi_ring_doorbell(qedi_conn);
1099 int qedi_send_iscsi_logout(struct qedi_conn *qedi_conn,
1108 struct qedi_ctx *qedi = qedi_conn->qedi;
1117 ep = qedi_conn->ep;
1142 logout_pdu_header.cid = qedi_conn->iscsi_conn_id;
1146 task_params.conn_icid = (u16)qedi_conn->iscsi_conn_id;
1152 sq_idx = qedi_get_wqe_idx(qedi_conn);
1162 spin_lock(&qedi_conn->list_lock);
1163 list_add_tail(&qedi_cmd->io_cmd, &qedi_conn->active_cmd_list);
1165 qedi_conn->active_cmd_count++;
1166 spin_unlock(&qedi_conn->list_lock);
1168 qedi_ring_doorbell(qedi_conn);
1172 int qedi_cleanup_all_io(struct qedi_ctx *qedi, struct qedi_conn *qedi_conn,
1181 struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
1195 qedi_conn->cmd_cleanup_req = 0;
1196 qedi_conn->cmd_cleanup_cmpl = 0;
1200 qedi_conn->active_cmd_count, qedi_conn->iscsi_conn_id,
1206 spin_lock(&qedi_conn->list_lock);
1208 list_for_each_entry_safe(cmd, cmd_tmp, &qedi_conn->active_cmd_list,
1221 qedi_conn->iscsi_conn_id);
1226 qedi_conn->cmd_cleanup_req++;
1231 qedi_conn->active_cmd_count--;
1234 &cmd->io_cmd, qedi_conn->iscsi_conn_id);
1237 spin_unlock(&qedi_conn->list_lock);
1244 qedi_conn->cmd_cleanup_req,
1245 qedi_conn->iscsi_conn_id);
1247 rval = wait_event_interruptible_timeout(qedi_conn->wait_queue,
1248 ((qedi_conn->cmd_cleanup_req ==
1249 qedi_conn->cmd_cleanup_cmpl) ||
1256 qedi_conn->cmd_cleanup_req,
1257 qedi_conn->cmd_cleanup_cmpl,
1258 qedi_conn->iscsi_conn_id);
1265 qedi_conn->cmd_cleanup_req,
1266 qedi_conn->cmd_cleanup_cmpl,
1267 qedi_conn->iscsi_conn_id);
1274 if (!wait_event_interruptible_timeout(qedi_conn->wait_queue,
1275 (qedi_conn->cmd_cleanup_req ==
1276 qedi_conn->cmd_cleanup_cmpl) ||
1291 void qedi_clearsq(struct qedi_ctx *qedi, struct qedi_conn *qedi_conn,
1297 qedi_ep = qedi_conn->ep;
1298 qedi_conn->cmd_cleanup_req = 0;
1299 qedi_conn->cmd_cleanup_cmpl = 0;
1304 qedi_conn->iscsi_conn_id);
1310 qedi_conn->iscsi_conn_id, qedi_conn, qedi_ep);
1314 rval = qedi_cleanup_all_io(qedi, qedi_conn, task, true);
1318 qedi_conn->iscsi_conn_id);
1324 struct qedi_conn *qedi_conn,
1332 wait = wait_event_interruptible_timeout(qedi_conn->wait_queue,
1344 cmd->task_id, qedi_conn->iscsi_conn_id);
1355 struct qedi_conn *qedi_conn = qedi_cmd->conn;
1356 struct qedi_ctx *qedi = qedi_conn->qedi;
1357 struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
1368 set_bit(QEDI_CONN_FW_CLEANUP, &qedi_conn->flags);
1380 qedi_conn->iscsi_conn_id);
1402 list_work->ptr_tmf_work, list_work, qedi_conn->iscsi_conn_id,
1405 spin_lock_bh(&qedi_conn->tmf_work_lock);
1406 list_add_tail(&list_work->list, &qedi_conn->tmf_work_list);
1407 spin_unlock_bh(&qedi_conn->tmf_work_lock);
1411 rval = qedi_wait_for_cleanup_request(qedi, qedi_conn, ctask, qedi_cmd,
1416 qedi_conn->iscsi_conn_id);
1423 qedi_conn->iscsi_conn_id);
1428 qedi_send_iscsi_tmf(qedi_conn, qedi_cmd->task);
1431 clear_bit(QEDI_CONN_FW_CLEANUP, &qedi_conn->flags);
1435 spin_lock_bh(&qedi_conn->tmf_work_lock);
1441 spin_unlock_bh(&qedi_conn->tmf_work_lock);
1443 spin_lock(&qedi_conn->list_lock);
1447 qedi_conn->active_cmd_count--;
1449 spin_unlock(&qedi_conn->list_lock);
1451 clear_bit(QEDI_CONN_FW_CLEANUP, &qedi_conn->flags);
1454 static int qedi_send_iscsi_tmf(struct qedi_conn *qedi_conn,
1459 struct qedi_ctx *qedi = qedi_conn->qedi;
1461 struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
1474 ep = qedi_conn->ep;
1524 task_params.conn_icid = (u16)qedi_conn->iscsi_conn_id;
1530 sq_idx = qedi_get_wqe_idx(qedi_conn);
1539 spin_lock(&qedi_conn->list_lock);
1540 list_add_tail(&qedi_cmd->io_cmd, &qedi_conn->active_cmd_list);
1542 qedi_conn->active_cmd_count++;
1543 spin_unlock(&qedi_conn->list_lock);
1545 qedi_ring_doorbell(qedi_conn);
1549 int qedi_iscsi_abort_work(struct qedi_conn *qedi_conn,
1552 struct qedi_ctx *qedi = qedi_conn->qedi;
1576 qedi_conn->iscsi_conn_id);
1581 qedi_send_iscsi_tmf(qedi_conn, qedi_cmd->task);
1585 qedi_conn->iscsi_conn_id);
1592 int qedi_send_iscsi_text(struct qedi_conn *qedi_conn,
1600 struct qedi_ctx *qedi = qedi_conn->qedi;
1610 req_sge = (struct scsi_sge *)qedi_conn->gen_pdu.req_bd_tbl;
1611 resp_sge = (struct scsi_sge *)qedi_conn->gen_pdu.resp_bd_tbl;
1614 ep = qedi_conn->ep;
1645 (struct scsi_sge *)qedi_conn->gen_pdu.req_bd_tbl;
1647 (u32)(qedi_conn->gen_pdu.req_dma_addr);
1649 (u32)((u64)qedi_conn->gen_pdu.req_dma_addr >> 32);
1654 (struct scsi_sge *)qedi_conn->gen_pdu.resp_bd_tbl;
1656 (u32)(qedi_conn->gen_pdu.resp_dma_addr);
1658 (u32)((u64)qedi_conn->gen_pdu.resp_dma_addr >> 32);
1664 task_params.conn_icid = (u16)qedi_conn->iscsi_conn_id;
1670 sq_idx = qedi_get_wqe_idx(qedi_conn);
1681 spin_lock(&qedi_conn->list_lock);
1682 list_add_tail(&qedi_cmd->io_cmd, &qedi_conn->active_cmd_list);
1684 qedi_conn->active_cmd_count++;
1685 spin_unlock(&qedi_conn->list_lock);
1687 qedi_ring_doorbell(qedi_conn);
1691 int qedi_send_iscsi_nopout(struct qedi_conn *qedi_conn,
1699 struct qedi_ctx *qedi = qedi_conn->qedi;
1710 resp_sge = (struct scsi_sge *)qedi_conn->gen_pdu.resp_bd_tbl;
1713 ep = qedi_conn->ep;
1751 spin_lock(&qedi_conn->list_lock);
1752 list_add_tail(&qedi_cmd->io_cmd, &qedi_conn->active_cmd_list);
1754 qedi_conn->active_cmd_count++;
1755 spin_unlock(&qedi_conn->list_lock);
1761 (struct scsi_sge *)qedi_conn->gen_pdu.req_bd_tbl;
1763 (u32)(qedi_conn->gen_pdu.req_dma_addr);
1765 (u32)((u64)qedi_conn->gen_pdu.req_dma_addr >> 32);
1770 (struct scsi_sge *)qedi_conn->gen_pdu.resp_bd_tbl;
1772 (u32)(qedi_conn->gen_pdu.resp_dma_addr);
1774 (u32)((u64)qedi_conn->gen_pdu.resp_dma_addr >> 32);
1781 task_params.conn_icid = (u16)qedi_conn->iscsi_conn_id;
1787 sq_idx = qedi_get_wqe_idx(qedi_conn);
1798 qedi_ring_doorbell(qedi_conn);
1975 struct qedi_conn *qedi_conn = conn->dd_data;
1984 io_log->cid = qedi_conn->iscsi_conn_id;
2031 struct qedi_conn *qedi_conn = conn->dd_data;
2053 ep = qedi_conn->ep;
2054 cls_conn = qedi_conn->cls_conn;
2141 task_params.conn_icid = (u16)qedi_conn->iscsi_conn_id;
2149 sq_idx = qedi_get_wqe_idx(qedi_conn);
2175 spin_lock(&qedi_conn->list_lock);
2176 list_add_tail(&cmd->io_cmd, &qedi_conn->active_cmd_list);
2178 qedi_conn->active_cmd_count++;
2179 spin_unlock(&qedi_conn->list_lock);
2181 qedi_ring_doorbell(qedi_conn);
2190 struct qedi_conn *qedi_conn = conn->dd_data;
2195 QEDI_INFO(&qedi_conn->qedi->dbg_ctx, QEDI_LOG_SCSI_TM,
2198 cmd->state, qedi_conn->iscsi_conn_id);
2201 ep = qedi_conn->ep;
2203 sq_idx = qedi_get_wqe_idx(qedi_conn);
2213 qedi_ring_doorbell(qedi_conn);