Lines Matching defs:qedi_conn

17 static int 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;
161 rval = qedi_cleanup_all_io(qedi, qedi_conn, qedi_cmd->task, true);
172 spin_lock(&qedi_conn->tmf_work_lock);
173 qedi_conn->fw_cleanup_works--;
174 spin_unlock(&qedi_conn->tmf_work_lock);
180 struct qedi_conn *qedi_conn)
183 struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
197 qedi_conn->iscsi_conn_id);
222 spin_lock(&qedi_conn->list_lock);
226 qedi_conn->active_cmd_count--;
228 spin_unlock(&qedi_conn->list_lock);
230 spin_lock(&qedi_conn->tmf_work_lock);
235 if (qedi_conn->ep_disconnect_starting) {
237 spin_unlock(&qedi_conn->tmf_work_lock);
241 qedi_conn->fw_cleanup_works++;
242 spin_unlock(&qedi_conn->tmf_work_lock);
248 spin_unlock(&qedi_conn->tmf_work_lock);
260 struct qedi_conn *qedi_conn)
262 struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
276 resp_hdr_ptr = (struct iscsi_login_rsp *)&qedi_conn->gen_pdu.resp_hdr;
295 qedi_conn->gen_pdu.resp_wr_ptr = qedi_conn->gen_pdu.resp_buf + pld_len;
297 spin_lock(&qedi_conn->list_lock);
301 qedi_conn->active_cmd_count--;
303 spin_unlock(&qedi_conn->list_lock);
308 qedi_conn->gen_pdu.resp_buf,
309 (qedi_conn->gen_pdu.resp_wr_ptr -
310 qedi_conn->gen_pdu.resp_buf));
315 cmd->task_id, qedi_conn->iscsi_conn_id);
411 struct qedi_conn *qedi_conn, u16 que_idx)
413 struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
431 hdr = (struct iscsi_nopin *)&qedi_conn->gen_pdu.resp_hdr;
460 cmd->task_id, qedi_conn->iscsi_conn_id);
462 spin_lock(&qedi_conn->list_lock);
466 qedi_conn->active_cmd_count--;
469 spin_unlock(&qedi_conn->list_lock);
482 struct qedi_conn *qedi_conn,
485 struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
508 resp_hdr = (struct iscsi_async *)&qedi_conn->gen_pdu.resp_hdr;
536 struct qedi_conn *qedi_conn,
539 struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
558 hdr = (struct iscsi_reject *)&qedi_conn->gen_pdu.resp_hdr;
586 struct qedi_conn *qedi_conn;
591 qedi_conn = qedi->cid_que.conn_cid_tbl[iscsi_cid];
645 qedi_conn->iscsi_conn_id, hdr->residual_count,
652 spin_lock(&qedi_conn->list_lock);
656 qedi_conn->active_cmd_count--;
658 spin_unlock(&qedi_conn->list_lock);
662 cmd->task_id, qedi_conn->iscsi_conn_id);
676 struct qedi_conn *conn, uint16_t que_idx)
712 struct qedi_conn *qedi_conn)
714 struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
738 struct qedi_conn *qedi_conn;
744 qedi_conn = qedi->cid_que.conn_cid_tbl[iscsi_cid];
745 if (!qedi_conn) {
752 spin_lock_bh(&qedi_conn->tmf_work_lock);
753 list_for_each_entry_safe(work, work_tmp, &qedi_conn->tmf_work_list,
761 proto_itt, qedi_conn->iscsi_conn_id);
774 spin_unlock_bh(&qedi_conn->tmf_work_lock);
781 proto_itt, tmf_hdr->flags, qedi_conn->iscsi_conn_id);
787 get_itt(tmf_hdr->rtt), qedi_conn->iscsi_conn_id);
796 qedi_conn->iscsi_conn_id);
798 spin_lock(&qedi_conn->list_lock);
802 qedi_conn->active_cmd_count--;
804 spin_unlock(&qedi_conn->list_lock);
808 wake_up_interruptible(&qedi_conn->wait_queue);
812 if (atomic_inc_return(&qedi_conn->cmd_cleanup_cmpl) ==
813 qedi_conn->cmd_cleanup_req) {
816 cqe->itid, qedi_conn->iscsi_conn_id);
817 wake_up(&qedi_conn->wait_queue);
827 struct qedi_conn *q_conn;
923 static void qedi_ring_doorbell(struct qedi_conn *qedi_conn)
925 qedi_conn->ep->db_data.sq_prod = qedi_conn->ep->fw_sq_prod_idx;
929 writel(*(u32 *)&qedi_conn->ep->db_data, qedi_conn->ep->p_doorbell);
936 QEDI_INFO(&qedi_conn->qedi->dbg_ctx, QEDI_LOG_MP_REQ,
938 qedi_conn->ep->sq_prod_idx, qedi_conn->ep->fw_sq_prod_idx,
939 qedi_conn->iscsi_conn_id);
942 static u16 qedi_get_wqe_idx(struct qedi_conn *qedi_conn)
947 ep = qedi_conn->ep;
959 int qedi_send_iscsi_login(struct qedi_conn *qedi_conn,
967 struct qedi_ctx *qedi = qedi_conn->qedi;
976 resp_sge = (struct scsi_sge *)qedi_conn->gen_pdu.resp_bd_tbl;
978 ep = qedi_conn->ep;
1009 login_req_pdu_header.cid = qedi_conn->iscsi_conn_id;
1016 (struct scsi_sge *)qedi_conn->gen_pdu.req_bd_tbl;
1018 (u32)(qedi_conn->gen_pdu.req_dma_addr);
1020 (u32)((u64)qedi_conn->gen_pdu.req_dma_addr >> 32);
1025 (struct scsi_sge *)qedi_conn->gen_pdu.resp_bd_tbl;
1027 (u32)(qedi_conn->gen_pdu.resp_dma_addr);
1029 (u32)((u64)qedi_conn->gen_pdu.resp_dma_addr >> 32);
1035 task_params.conn_icid = (u16)qedi_conn->iscsi_conn_id;
1041 sq_idx = qedi_get_wqe_idx(qedi_conn);
1052 spin_lock(&qedi_conn->list_lock);
1053 list_add_tail(&qedi_cmd->io_cmd, &qedi_conn->active_cmd_list);
1055 qedi_conn->active_cmd_count++;
1056 spin_unlock(&qedi_conn->list_lock);
1058 qedi_ring_doorbell(qedi_conn);
1062 int qedi_send_iscsi_logout(struct qedi_conn *qedi_conn,
1071 struct qedi_ctx *qedi = qedi_conn->qedi;
1080 ep = qedi_conn->ep;
1105 logout_pdu_header.cid = qedi_conn->iscsi_conn_id;
1109 task_params.conn_icid = (u16)qedi_conn->iscsi_conn_id;
1115 sq_idx = qedi_get_wqe_idx(qedi_conn);
1125 spin_lock(&qedi_conn->list_lock);
1126 list_add_tail(&qedi_cmd->io_cmd, &qedi_conn->active_cmd_list);
1128 qedi_conn->active_cmd_count++;
1129 spin_unlock(&qedi_conn->list_lock);
1131 qedi_ring_doorbell(qedi_conn);
1135 int qedi_cleanup_all_io(struct qedi_ctx *qedi, struct qedi_conn *qedi_conn,
1144 struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
1158 qedi_conn->cmd_cleanup_req = 0;
1159 atomic_set(&qedi_conn->cmd_cleanup_cmpl, 0);
1163 qedi_conn->active_cmd_count, qedi_conn->iscsi_conn_id,
1169 spin_lock(&qedi_conn->list_lock);
1171 list_for_each_entry_safe(cmd, cmd_tmp, &qedi_conn->active_cmd_list,
1184 qedi_conn->iscsi_conn_id);
1189 qedi_conn->cmd_cleanup_req++;
1194 qedi_conn->active_cmd_count--;
1197 &cmd->io_cmd, qedi_conn->iscsi_conn_id);
1200 spin_unlock(&qedi_conn->list_lock);
1207 qedi_conn->cmd_cleanup_req,
1208 qedi_conn->iscsi_conn_id);
1210 rval = wait_event_interruptible_timeout(qedi_conn->wait_queue,
1211 (qedi_conn->cmd_cleanup_req ==
1212 atomic_read(&qedi_conn->cmd_cleanup_cmpl)) ||
1218 qedi_conn->cmd_cleanup_req,
1219 atomic_read(&qedi_conn->cmd_cleanup_cmpl),
1220 qedi_conn->iscsi_conn_id);
1227 qedi_conn->cmd_cleanup_req,
1228 atomic_read(&qedi_conn->cmd_cleanup_cmpl),
1229 qedi_conn->iscsi_conn_id);
1236 if (!wait_event_interruptible_timeout(qedi_conn->wait_queue,
1237 (qedi_conn->cmd_cleanup_req ==
1238 atomic_read(&qedi_conn->cmd_cleanup_cmpl)) ||
1252 void qedi_clearsq(struct qedi_ctx *qedi, struct qedi_conn *qedi_conn,
1258 qedi_ep = qedi_conn->ep;
1259 qedi_conn->cmd_cleanup_req = 0;
1260 atomic_set(&qedi_conn->cmd_cleanup_cmpl, 0);
1265 qedi_conn->iscsi_conn_id);
1271 qedi_conn->iscsi_conn_id, qedi_conn, qedi_ep);
1275 rval = qedi_cleanup_all_io(qedi, qedi_conn, task, true);
1279 qedi_conn->iscsi_conn_id);
1285 struct qedi_conn *qedi_conn,
1293 wait = wait_event_interruptible_timeout(qedi_conn->wait_queue,
1305 cmd->task_id, qedi_conn->iscsi_conn_id);
1316 struct qedi_conn *qedi_conn = qedi_cmd->conn;
1317 struct qedi_ctx *qedi = qedi_conn->qedi;
1318 struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
1353 qedi_conn->iscsi_conn_id);
1377 list_work->ptr_tmf_work, list_work, qedi_conn->iscsi_conn_id,
1380 spin_lock_bh(&qedi_conn->tmf_work_lock);
1381 list_add_tail(&list_work->list, &qedi_conn->tmf_work_list);
1382 spin_unlock_bh(&qedi_conn->tmf_work_lock);
1386 rval = qedi_wait_for_cleanup_request(qedi, qedi_conn, ctask, qedi_cmd,
1391 qedi_conn->iscsi_conn_id);
1396 send_iscsi_tmf(qedi_conn, qedi_cmd->task, ctask);
1400 spin_lock_bh(&qedi_conn->tmf_work_lock);
1406 spin_unlock_bh(&qedi_conn->tmf_work_lock);
1408 spin_lock(&qedi_conn->list_lock);
1412 qedi_conn->active_cmd_count--;
1414 spin_unlock(&qedi_conn->list_lock);
1417 spin_lock(&qedi_conn->tmf_work_lock);
1418 qedi_conn->fw_cleanup_works--;
1419 spin_unlock(&qedi_conn->tmf_work_lock);
1422 static int send_iscsi_tmf(struct qedi_conn *qedi_conn, struct iscsi_task *mtask,
1427 struct qedi_ctx *qedi = qedi_conn->qedi;
1439 ep = qedi_conn->ep;
1483 task_params.conn_icid = (u16)qedi_conn->iscsi_conn_id;
1489 sq_idx = qedi_get_wqe_idx(qedi_conn);
1495 spin_lock(&qedi_conn->list_lock);
1496 list_add_tail(&qedi_cmd->io_cmd, &qedi_conn->active_cmd_list);
1498 qedi_conn->active_cmd_count++;
1499 spin_unlock(&qedi_conn->list_lock);
1501 qedi_ring_doorbell(qedi_conn);
1505 int qedi_send_iscsi_tmf(struct qedi_conn *qedi_conn, struct iscsi_task *mtask)
1509 struct qedi_ctx *qedi = qedi_conn->qedi;
1514 spin_lock(&qedi_conn->tmf_work_lock);
1515 qedi_conn->fw_cleanup_works++;
1516 spin_unlock(&qedi_conn->tmf_work_lock);
1524 rc = send_iscsi_tmf(qedi_conn, mtask, NULL);
1528 qedi_conn->iscsi_conn_id);
1535 int qedi_send_iscsi_text(struct qedi_conn *qedi_conn,
1543 struct qedi_ctx *qedi = qedi_conn->qedi;
1553 req_sge = (struct scsi_sge *)qedi_conn->gen_pdu.req_bd_tbl;
1554 resp_sge = (struct scsi_sge *)qedi_conn->gen_pdu.resp_bd_tbl;
1557 ep = qedi_conn->ep;
1588 (struct scsi_sge *)qedi_conn->gen_pdu.req_bd_tbl;
1590 (u32)(qedi_conn->gen_pdu.req_dma_addr);
1592 (u32)((u64)qedi_conn->gen_pdu.req_dma_addr >> 32);
1597 (struct scsi_sge *)qedi_conn->gen_pdu.resp_bd_tbl;
1599 (u32)(qedi_conn->gen_pdu.resp_dma_addr);
1601 (u32)((u64)qedi_conn->gen_pdu.resp_dma_addr >> 32);
1607 task_params.conn_icid = (u16)qedi_conn->iscsi_conn_id;
1613 sq_idx = qedi_get_wqe_idx(qedi_conn);
1624 spin_lock(&qedi_conn->list_lock);
1625 list_add_tail(&qedi_cmd->io_cmd, &qedi_conn->active_cmd_list);
1627 qedi_conn->active_cmd_count++;
1628 spin_unlock(&qedi_conn->list_lock);
1630 qedi_ring_doorbell(qedi_conn);
1634 int qedi_send_iscsi_nopout(struct qedi_conn *qedi_conn,
1642 struct qedi_ctx *qedi = qedi_conn->qedi;
1653 resp_sge = (struct scsi_sge *)qedi_conn->gen_pdu.resp_bd_tbl;
1656 ep = qedi_conn->ep;
1694 spin_lock(&qedi_conn->list_lock);
1695 list_add_tail(&qedi_cmd->io_cmd, &qedi_conn->active_cmd_list);
1697 qedi_conn->active_cmd_count++;
1698 spin_unlock(&qedi_conn->list_lock);
1704 (struct scsi_sge *)qedi_conn->gen_pdu.req_bd_tbl;
1706 (u32)(qedi_conn->gen_pdu.req_dma_addr);
1708 (u32)((u64)qedi_conn->gen_pdu.req_dma_addr >> 32);
1713 (struct scsi_sge *)qedi_conn->gen_pdu.resp_bd_tbl;
1715 (u32)(qedi_conn->gen_pdu.resp_dma_addr);
1717 (u32)((u64)qedi_conn->gen_pdu.resp_dma_addr >> 32);
1724 task_params.conn_icid = (u16)qedi_conn->iscsi_conn_id;
1730 sq_idx = qedi_get_wqe_idx(qedi_conn);
1741 qedi_ring_doorbell(qedi_conn);
1918 struct qedi_conn *qedi_conn = conn->dd_data;
1927 io_log->cid = qedi_conn->iscsi_conn_id;
1974 struct qedi_conn *qedi_conn = conn->dd_data;
1996 ep = qedi_conn->ep;
1997 cls_conn = qedi_conn->cls_conn;
2084 task_params.conn_icid = (u16)qedi_conn->iscsi_conn_id;
2092 sq_idx = qedi_get_wqe_idx(qedi_conn);
2118 spin_lock(&qedi_conn->list_lock);
2119 list_add_tail(&cmd->io_cmd, &qedi_conn->active_cmd_list);
2121 qedi_conn->active_cmd_count++;
2122 spin_unlock(&qedi_conn->list_lock);
2124 qedi_ring_doorbell(qedi_conn);
2133 struct qedi_conn *qedi_conn = conn->dd_data;
2138 QEDI_INFO(&qedi_conn->qedi->dbg_ctx, QEDI_LOG_SCSI_TM,
2141 cmd->state, qedi_conn->iscsi_conn_id);
2144 ep = qedi_conn->ep;
2146 sq_idx = qedi_get_wqe_idx(qedi_conn);
2156 qedi_ring_doorbell(qedi_conn);