Lines Matching refs:bnx2i_conn

193 void bnx2i_get_rq_buf(struct bnx2i_conn *bnx2i_conn, char *ptr, int len)  in bnx2i_get_rq_buf()  argument
195 if (!bnx2i_conn->ep->qp.rqe_left) in bnx2i_get_rq_buf()
198 bnx2i_conn->ep->qp.rqe_left--; in bnx2i_get_rq_buf()
199 memcpy(ptr, (u8 *) bnx2i_conn->ep->qp.rq_cons_qe, len); in bnx2i_get_rq_buf()
200 if (bnx2i_conn->ep->qp.rq_cons_qe == bnx2i_conn->ep->qp.rq_last_qe) { in bnx2i_get_rq_buf()
201 bnx2i_conn->ep->qp.rq_cons_qe = bnx2i_conn->ep->qp.rq_first_qe; in bnx2i_get_rq_buf()
202 bnx2i_conn->ep->qp.rq_cons_idx = 0; in bnx2i_get_rq_buf()
204 bnx2i_conn->ep->qp.rq_cons_qe++; in bnx2i_get_rq_buf()
205 bnx2i_conn->ep->qp.rq_cons_idx++; in bnx2i_get_rq_buf()
210 static void bnx2i_ring_577xx_doorbell(struct bnx2i_conn *conn) in bnx2i_ring_577xx_doorbell()
231 void bnx2i_put_rq_buf(struct bnx2i_conn *bnx2i_conn, int count) in bnx2i_put_rq_buf() argument
234 u16 hi_bit = (bnx2i_conn->ep->qp.rq_prod_idx & 0x8000); in bnx2i_put_rq_buf()
235 struct bnx2i_endpoint *ep = bnx2i_conn->ep; in bnx2i_put_rq_buf()
241 if (ep->qp.rq_prod_idx > bnx2i_conn->hba->max_rqes) { in bnx2i_put_rq_buf()
242 ep->qp.rq_prod_idx %= bnx2i_conn->hba->max_rqes; in bnx2i_put_rq_buf()
269 static void bnx2i_ring_sq_dbell(struct bnx2i_conn *bnx2i_conn, int count) in bnx2i_ring_sq_dbell() argument
272 struct bnx2i_endpoint *ep = bnx2i_conn->ep; in bnx2i_ring_sq_dbell()
279 bnx2i_ring_577xx_doorbell(bnx2i_conn); in bnx2i_ring_sq_dbell()
294 static void bnx2i_ring_dbell_update_sq_params(struct bnx2i_conn *bnx2i_conn, in bnx2i_ring_dbell_update_sq_params() argument
300 if (bnx2i_conn->ep->qp.sq_prod_qe == in bnx2i_ring_dbell_update_sq_params()
301 bnx2i_conn->ep->qp.sq_last_qe) in bnx2i_ring_dbell_update_sq_params()
302 bnx2i_conn->ep->qp.sq_prod_qe = in bnx2i_ring_dbell_update_sq_params()
303 bnx2i_conn->ep->qp.sq_first_qe; in bnx2i_ring_dbell_update_sq_params()
305 bnx2i_conn->ep->qp.sq_prod_qe++; in bnx2i_ring_dbell_update_sq_params()
307 if ((bnx2i_conn->ep->qp.sq_prod_qe + count) <= in bnx2i_ring_dbell_update_sq_params()
308 bnx2i_conn->ep->qp.sq_last_qe) in bnx2i_ring_dbell_update_sq_params()
309 bnx2i_conn->ep->qp.sq_prod_qe += count; in bnx2i_ring_dbell_update_sq_params()
311 tmp_cnt = bnx2i_conn->ep->qp.sq_last_qe - in bnx2i_ring_dbell_update_sq_params()
312 bnx2i_conn->ep->qp.sq_prod_qe; in bnx2i_ring_dbell_update_sq_params()
313 bnx2i_conn->ep->qp.sq_prod_qe = in bnx2i_ring_dbell_update_sq_params()
314 &bnx2i_conn->ep->qp.sq_first_qe[count - in bnx2i_ring_dbell_update_sq_params()
318 bnx2i_conn->ep->qp.sq_prod_idx += count; in bnx2i_ring_dbell_update_sq_params()
320 bnx2i_ring_sq_dbell(bnx2i_conn, bnx2i_conn->ep->qp.sq_prod_idx); in bnx2i_ring_dbell_update_sq_params()
332 int bnx2i_send_iscsi_login(struct bnx2i_conn *bnx2i_conn, in bnx2i_send_iscsi_login() argument
341 bnx2i_conn->ep->qp.sq_prod_qe; in bnx2i_send_iscsi_login()
359 login_wqe->resp_bd_list_addr_lo = (u32) bnx2i_conn->gen_pdu.resp_bd_dma; in bnx2i_send_iscsi_login()
361 (u32) ((u64) bnx2i_conn->gen_pdu.resp_bd_dma >> 32); in bnx2i_send_iscsi_login()
364 (bnx2i_conn->gen_pdu.resp_buf_size << in bnx2i_send_iscsi_login()
367 login_wqe->bd_list_addr_lo = (u32) bnx2i_conn->gen_pdu.req_bd_dma; in bnx2i_send_iscsi_login()
369 (u32) ((u64) bnx2i_conn->gen_pdu.req_bd_dma >> 32); in bnx2i_send_iscsi_login()
373 bnx2i_ring_dbell_update_sq_params(bnx2i_conn, 1); in bnx2i_send_iscsi_login()
385 int bnx2i_send_iscsi_tmf(struct bnx2i_conn *bnx2i_conn, in bnx2i_send_iscsi_tmf() argument
388 struct iscsi_conn *conn = bnx2i_conn->cls_conn->dd_data; in bnx2i_send_iscsi_tmf()
398 bnx2i_conn->ep->qp.sq_prod_qe; in bnx2i_send_iscsi_tmf()
441 tmfabort_wqe->bd_list_addr_lo = (u32) bnx2i_conn->hba->mp_bd_dma; in bnx2i_send_iscsi_tmf()
443 ((u64) bnx2i_conn->hba->mp_bd_dma >> 32); in bnx2i_send_iscsi_tmf()
447 bnx2i_ring_dbell_update_sq_params(bnx2i_conn, 1); in bnx2i_send_iscsi_tmf()
459 int bnx2i_send_iscsi_text(struct bnx2i_conn *bnx2i_conn, in bnx2i_send_iscsi_text() argument
467 text_wqe = (struct bnx2i_text_request *) bnx2i_conn->ep->qp.sq_prod_qe; in bnx2i_send_iscsi_text()
480 text_wqe->resp_bd_list_addr_lo = (u32) bnx2i_conn->gen_pdu.resp_bd_dma; in bnx2i_send_iscsi_text()
482 (u32) ((u64) bnx2i_conn->gen_pdu.resp_bd_dma >> 32); in bnx2i_send_iscsi_text()
485 (bnx2i_conn->gen_pdu.resp_buf_size << in bnx2i_send_iscsi_text()
488 text_wqe->bd_list_addr_lo = (u32) bnx2i_conn->gen_pdu.req_bd_dma; in bnx2i_send_iscsi_text()
490 (u32) ((u64) bnx2i_conn->gen_pdu.req_bd_dma >> 32); in bnx2i_send_iscsi_text()
494 bnx2i_ring_dbell_update_sq_params(bnx2i_conn, 1); in bnx2i_send_iscsi_text()
507 int bnx2i_send_iscsi_scsicmd(struct bnx2i_conn *bnx2i_conn, in bnx2i_send_iscsi_scsicmd() argument
513 bnx2i_conn->ep->qp.sq_prod_qe; in bnx2i_send_iscsi_scsicmd()
517 bnx2i_ring_dbell_update_sq_params(bnx2i_conn, 1); in bnx2i_send_iscsi_scsicmd()
533 int bnx2i_send_iscsi_nopout(struct bnx2i_conn *bnx2i_conn, in bnx2i_send_iscsi_nopout() argument
537 struct bnx2i_endpoint *ep = bnx2i_conn->ep; in bnx2i_send_iscsi_nopout()
571 bnx2i_conn->hba->mp_bd_dma; in bnx2i_send_iscsi_nopout()
573 (u32) ((u64) bnx2i_conn->hba->mp_bd_dma >> 32); in bnx2i_send_iscsi_nopout()
578 bnx2i_ring_dbell_update_sq_params(bnx2i_conn, 1); in bnx2i_send_iscsi_nopout()
591 int bnx2i_send_iscsi_logout(struct bnx2i_conn *bnx2i_conn, in bnx2i_send_iscsi_logout() argument
600 bnx2i_conn->ep->qp.sq_prod_qe; in bnx2i_send_iscsi_logout()
613 logout_wqe->bd_list_addr_lo = (u32) bnx2i_conn->hba->mp_bd_dma; in bnx2i_send_iscsi_logout()
615 ((u64) bnx2i_conn->hba->mp_bd_dma >> 32); in bnx2i_send_iscsi_logout()
619 bnx2i_conn->ep->state = EP_STATE_LOGOUT_SENT; in bnx2i_send_iscsi_logout()
621 bnx2i_ring_dbell_update_sq_params(bnx2i_conn, 1); in bnx2i_send_iscsi_logout()
634 struct bnx2i_conn *bnx2i_conn = conn->dd_data; in bnx2i_update_iscsi_conn() local
635 struct bnx2i_hba *hba = bnx2i_conn->hba; in bnx2i_update_iscsi_conn()
647 if (test_bit(BNX2I_NX2_DEV_57710, &bnx2i_conn->ep->hba->cnic_dev_type)) in bnx2i_update_iscsi_conn()
648 update_wqe->context_id = bnx2i_conn->ep->ep_cid; in bnx2i_update_iscsi_conn()
650 update_wqe->context_id = (bnx2i_conn->ep->ep_cid >> 7); in bnx2i_update_iscsi_conn()
1339 struct bnx2i_conn *bnx2i_conn, in bnx2i_process_scsi_cmd_resp() argument
1342 struct iscsi_conn *conn = bnx2i_conn->cls_conn->dd_data; in bnx2i_process_scsi_cmd_resp()
1343 struct bnx2i_hba *hba = bnx2i_conn->hba; in bnx2i_process_scsi_cmd_resp()
1436 struct bnx2i_conn *bnx2i_conn, in bnx2i_process_login_resp() argument
1439 struct iscsi_conn *conn = bnx2i_conn->cls_conn->dd_data; in bnx2i_process_login_resp()
1453 resp_hdr = (struct iscsi_login_rsp *) &bnx2i_conn->gen_pdu.resp_hdr; in bnx2i_process_login_resp()
1471 bnx2i_conn->gen_pdu.resp_wr_ptr = in bnx2i_process_login_resp()
1472 bnx2i_conn->gen_pdu.resp_buf + pld_len; in bnx2i_process_login_resp()
1481 bnx2i_conn->gen_pdu.resp_wr_ptr[0] = 0; in bnx2i_process_login_resp()
1482 bnx2i_conn->gen_pdu.resp_wr_ptr++; in bnx2i_process_login_resp()
1487 bnx2i_conn->gen_pdu.resp_buf, in bnx2i_process_login_resp()
1488 bnx2i_conn->gen_pdu.resp_wr_ptr - bnx2i_conn->gen_pdu.resp_buf); in bnx2i_process_login_resp()
1504 struct bnx2i_conn *bnx2i_conn, in bnx2i_process_text_resp() argument
1507 struct iscsi_conn *conn = bnx2i_conn->cls_conn->dd_data; in bnx2i_process_text_resp()
1520 resp_hdr = (struct iscsi_text_rsp *)&bnx2i_conn->gen_pdu.resp_hdr; in bnx2i_process_text_resp()
1533 bnx2i_conn->gen_pdu.resp_wr_ptr = bnx2i_conn->gen_pdu.resp_buf + in bnx2i_process_text_resp()
1542 bnx2i_conn->gen_pdu.resp_wr_ptr[0] = 0; in bnx2i_process_text_resp()
1543 bnx2i_conn->gen_pdu.resp_wr_ptr++; in bnx2i_process_text_resp()
1547 bnx2i_conn->gen_pdu.resp_buf, in bnx2i_process_text_resp()
1548 bnx2i_conn->gen_pdu.resp_wr_ptr - in bnx2i_process_text_resp()
1549 bnx2i_conn->gen_pdu.resp_buf); in bnx2i_process_text_resp()
1565 struct bnx2i_conn *bnx2i_conn, in bnx2i_process_tmf_resp() argument
1568 struct iscsi_conn *conn = bnx2i_conn->cls_conn->dd_data; in bnx2i_process_tmf_resp()
1580 resp_hdr = (struct iscsi_tm_rsp *) &bnx2i_conn->gen_pdu.resp_hdr; in bnx2i_process_tmf_resp()
1604 struct bnx2i_conn *bnx2i_conn, in bnx2i_process_logout_resp() argument
1607 struct iscsi_conn *conn = bnx2i_conn->cls_conn->dd_data; in bnx2i_process_logout_resp()
1619 resp_hdr = (struct iscsi_logout_rsp *) &bnx2i_conn->gen_pdu.resp_hdr; in bnx2i_process_logout_resp()
1635 bnx2i_conn->ep->state = EP_STATE_LOGOUT_RESP_RCVD; in bnx2i_process_logout_resp()
1650 struct bnx2i_conn *bnx2i_conn, in bnx2i_process_nopin_local_cmpl() argument
1653 struct iscsi_conn *conn = bnx2i_conn->cls_conn->dd_data; in bnx2i_process_nopin_local_cmpl()
1674 static void bnx2i_unsol_pdu_adjust_rq(struct bnx2i_conn *bnx2i_conn) in bnx2i_unsol_pdu_adjust_rq() argument
1677 bnx2i_get_rq_buf(bnx2i_conn, dummy_rq_data, 1); in bnx2i_unsol_pdu_adjust_rq()
1678 bnx2i_put_rq_buf(bnx2i_conn, 1); in bnx2i_unsol_pdu_adjust_rq()
1691 struct bnx2i_conn *bnx2i_conn, in bnx2i_process_nopin_mesg() argument
1694 struct iscsi_conn *conn = bnx2i_conn->cls_conn->dd_data; in bnx2i_process_nopin_mesg()
1703 hdr = (struct iscsi_nopin *)&bnx2i_conn->gen_pdu.resp_hdr; in bnx2i_process_nopin_mesg()
1711 bnx2i_unsol_pdu_adjust_rq(bnx2i_conn); in bnx2i_process_nopin_mesg()
1743 struct bnx2i_conn *bnx2i_conn, in bnx2i_process_async_mesg() argument
1750 bnx2i_unsol_pdu_adjust_rq(bnx2i_conn); in bnx2i_process_async_mesg()
1756 iscsi_conn_printk(KERN_ALERT, bnx2i_conn->cls_conn->dd_data, in bnx2i_process_async_mesg()
1762 resp_hdr = (struct iscsi_async *) &bnx2i_conn->gen_pdu.resp_hdr; in bnx2i_process_async_mesg()
1778 __iscsi_complete_pdu(bnx2i_conn->cls_conn->dd_data, in bnx2i_process_async_mesg()
1793 struct bnx2i_conn *bnx2i_conn, in bnx2i_process_reject_mesg() argument
1796 struct iscsi_conn *conn = bnx2i_conn->cls_conn->dd_data; in bnx2i_process_reject_mesg()
1802 bnx2i_get_rq_buf(bnx2i_conn, conn->data, reject->data_length); in bnx2i_process_reject_mesg()
1803 bnx2i_put_rq_buf(bnx2i_conn, 1); in bnx2i_process_reject_mesg()
1805 bnx2i_unsol_pdu_adjust_rq(bnx2i_conn); in bnx2i_process_reject_mesg()
1808 hdr = (struct iscsi_reject *) &bnx2i_conn->gen_pdu.resp_hdr; in bnx2i_process_reject_mesg()
1830 struct bnx2i_conn *bnx2i_conn, in bnx2i_process_cmd_cleanup_resp() argument
1834 struct iscsi_conn *conn = bnx2i_conn->cls_conn->dd_data; in bnx2i_process_cmd_cleanup_resp()
1845 complete(&bnx2i_conn->cmd_cleanup_cmpl); in bnx2i_process_cmd_cleanup_resp()
1872 work->bnx2i_conn, in bnx2i_percpu_io_thread()
1874 atomic_dec(&work->bnx2i_conn->work_cnt); in bnx2i_percpu_io_thread()
1901 struct bnx2i_conn *bnx2i_conn, in bnx2i_queue_scsi_cmd_resp() argument
1912 task = iscsi_itt_to_task(bnx2i_conn->cls_conn->dd_data, in bnx2i_queue_scsi_cmd_resp()
1938 bnx2i_work->bnx2i_conn = bnx2i_conn; in bnx2i_queue_scsi_cmd_resp()
1941 atomic_inc(&bnx2i_conn->work_cnt); in bnx2i_queue_scsi_cmd_resp()
1949 bnx2i_process_scsi_cmd_resp(session, bnx2i_conn, (struct cqe *)cqe); in bnx2i_queue_scsi_cmd_resp()
1961 static int bnx2i_process_new_cqes(struct bnx2i_conn *bnx2i_conn) in bnx2i_process_new_cqes() argument
1963 struct iscsi_conn *conn = bnx2i_conn->cls_conn->dd_data; in bnx2i_process_new_cqes()
1965 struct bnx2i_hba *hba = bnx2i_conn->hba; in bnx2i_process_new_cqes()
1971 if (bnx2i_conn->ep == NULL) in bnx2i_process_new_cqes()
1974 qp = &bnx2i_conn->ep->qp; in bnx2i_process_new_cqes()
1993 bnx2i_unsol_pdu_adjust_rq(bnx2i_conn); in bnx2i_process_new_cqes()
2005 bnx2i_queue_scsi_cmd_resp(session, bnx2i_conn, nopin); in bnx2i_process_new_cqes()
2008 bnx2i_process_login_resp(session, bnx2i_conn, in bnx2i_process_new_cqes()
2012 bnx2i_process_tmf_resp(session, bnx2i_conn, in bnx2i_process_new_cqes()
2016 bnx2i_process_text_resp(session, bnx2i_conn, in bnx2i_process_new_cqes()
2020 bnx2i_process_logout_resp(session, bnx2i_conn, in bnx2i_process_new_cqes()
2024 if (bnx2i_process_nopin_mesg(session, bnx2i_conn, in bnx2i_process_new_cqes()
2029 bnx2i_process_nopin_local_cmpl(session, bnx2i_conn, in bnx2i_process_new_cqes()
2033 bnx2i_process_async_mesg(session, bnx2i_conn, in bnx2i_process_new_cqes()
2038 bnx2i_process_reject_mesg(session, bnx2i_conn, in bnx2i_process_new_cqes()
2042 bnx2i_process_cmd_cleanup_resp(session, bnx2i_conn, in bnx2i_process_new_cqes()
2054 if (!atomic_read(&bnx2i_conn->ep->num_active_cmds)) in bnx2i_process_new_cqes()
2060 atomic_dec(&bnx2i_conn->ep->num_active_cmds); in bnx2i_process_new_cqes()
2095 struct bnx2i_conn *bnx2i_conn; in bnx2i_fastpath_notification() local
2100 bnx2i_conn = bnx2i_get_conn_from_id(hba, iscsi_cid); in bnx2i_fastpath_notification()
2102 if (!bnx2i_conn) { in bnx2i_fastpath_notification()
2106 if (!bnx2i_conn->ep) { in bnx2i_fastpath_notification()
2111 bnx2i_process_new_cqes(bnx2i_conn); in bnx2i_fastpath_notification()
2112 nxt_idx = bnx2i_arm_cq_event_coalescing(bnx2i_conn->ep, in bnx2i_fastpath_notification()
2114 if (nxt_idx && nxt_idx == bnx2i_process_new_cqes(bnx2i_conn)) in bnx2i_fastpath_notification()
2115 bnx2i_arm_cq_event_coalescing(bnx2i_conn->ep, CNIC_ARM_CQE_FP); in bnx2i_fastpath_notification()
2129 struct bnx2i_conn *conn; in bnx2i_process_update_conn_cmpl()
2162 struct bnx2i_conn *bnx2i_conn) in bnx2i_recovery_que_add_conn() argument
2164 iscsi_conn_failure(bnx2i_conn->cls_conn->dd_data, in bnx2i_recovery_que_add_conn()
2180 struct bnx2i_conn *bnx2i_conn; in bnx2i_process_tcp_error() local
2184 bnx2i_conn = bnx2i_get_conn_from_id(hba, iscsi_cid); in bnx2i_process_tcp_error()
2186 if (!bnx2i_conn) { in bnx2i_process_tcp_error()
2193 bnx2i_recovery_que_add_conn(bnx2i_conn->hba, bnx2i_conn); in bnx2i_process_tcp_error()
2213 struct bnx2i_conn *bnx2i_conn; in bnx2i_process_iscsi_error() local
2223 bnx2i_conn = bnx2i_get_conn_from_id(hba, iscsi_cid); in bnx2i_process_iscsi_error()
2224 if (!bnx2i_conn) { in bnx2i_process_iscsi_error()
2368 bnx2i_conn->cls_conn->dd_data, in bnx2i_process_iscsi_error()
2373 bnx2i_conn->cls_conn->dd_data, in bnx2i_process_iscsi_error()
2376 bnx2i_conn->hba->shost->host_no, in bnx2i_process_iscsi_error()
2377 bnx2i_conn, bnx2i_conn->ep->ep_iscsi_cid, in bnx2i_process_iscsi_error()
2378 bnx2i_conn->ep->ep_cid); in bnx2i_process_iscsi_error()
2379 bnx2i_recovery_que_add_conn(bnx2i_conn->hba, bnx2i_conn); in bnx2i_process_iscsi_error()
2382 (void *) &bnx2i_conn->violation_notified)) in bnx2i_process_iscsi_error()
2384 bnx2i_conn->cls_conn->dd_data, in bnx2i_process_iscsi_error()